View Full Version : سوال: چرا تصویر در برنامه ام ناواضح است؟
mbshareat
یک شنبه 27 شهریور 1390, 19:34 عصر
با سلام
من یه برنامه دارم که متن قرآن رو با حاشیه یا بدونش و در حالت معمولی یا تمام صفحه نمایش میده !
نمی دونم چرا وقتی صفحه قرآن رو در حالت تمام صفحه نمایش میدم بدون حاشیه تصویر واضحی نشون میده ولی وقتی حاشیه هم براش میذارم تصویر صفحه داخل حاشیه نا واضحه.
خودم فکر می کردم مشکل از PixelFormat باشه ولی وقتیکه pf24bit رو بهش نسبت دادم دیدم مشکل حل نشد.
لطفا تصاویر ضمیمه رو ببینید و بفرمایین علت اینکه وقتی صفحه حاشیه دار و بزرگ هستش ناواضحه!
mbshareat
یک شنبه 27 شهریور 1390, 22:41 عصر
75468با سلام مجدد
نمی دونم چرا تصویر بعد از آپلود کوچک و بی کیفیت شد.
دوباره تصویر رو گذاشتم!
در ضمن من از این پرو سیجر برای ترسیم یه بیت مپ در ناحیه ای از بیت مپ دیگه استفاده می کنم:
procedure StBlt(B,B2:TBitmap;B2R:TRect);
Begin
B2.PixelFormat := pf24Bit;
B2.Palette := B.Palette;
SetStretchBltMode(B2.Canvas.Handle, HalfTone);
StretchBlt(B2.Canvas.Handle,B2R.Left,B2R.Top
,(B2R.Right-B2R.Left)+1,(B2R.Bottom-B2R.Top)+1
,B.Canvas.Handle,0,0,B.Width,B.Height, SRCCOPY);
End;
MohsenB
یک شنبه 27 شهریور 1390, 23:01 عصر
سلام
این تایع API ی StretchBlt توی تغییر اندازه مشکل داره مثلا یه سری از مشکلاتش اینه که کیفیت عکس رو پایین میاره ، قسمتی از تصویر را حذف میکنه و عکس رو بهم ریخته نشون میده .
بهتره از یه روش دیگه استفاده کنید مثلا:
عکس ها رو با اندازه واقعی نشون بدین
دنبال یه کلمپوننت برای زوم کردن بگردین
خودتون عکس ها رو اصلاح کنید و از هر عکس یه نمونه با کادر و یه نمونه بدون کادر درست کنید
این تابع بیشتر توی کوچک کردن عکس مشکل داره ، خودتون عکس ها رو روی بزرگترین اندازه ای که برنامه میخواد کنید و با این تابع اونو در صورت نیاز کوچک کنید
موفق باشید
mbshareat
سه شنبه 29 شهریور 1390, 00:10 صبح
با سلام
متاسفانه با اینکه سه بار عکس رو آپلود کردم یه عکس با کیفیت تو سایت نمی بینم.
من هم تصویرم رو با فرمت jpg و هم به فرمت Gif آپلود کردم.
اگه می تونستم تصویر درست رو آپلود کنم می دیدین که مشکل از اینکه شما فرمودین نیست.
روشی که من استفاده کردم فقط هنگام بزرگ کردن مشکل داره. روش دیگه هم دارم که استفاده از GraphicEx باشه(البته چون خیلی ازش استفاده نکردم اسمشو مطمئن نیستم!)
توابع تغییر اندازه هم ممکنه بشه تو اینترنت پیدا کرد ولی به این سرعت نیستند. من فکر می کنم خود ویندوز هم همین روش رو برای نمایش تصویر داره!
تو تصویری که گذاشتم تصویر پایین سمت راست اگه کیفیت خوب داشت نشون میداد که مشکل از تاثیر تغییر اندازه بر روی کیفیت نیست.
بحث تغییر اندازه رو خودم قبلا توی تاپیک خیلی پیش (شاید سال پیش) مطرح کردم .
SetStretchBltMode(B2.Canvas.Handle, HalfTone); هم خیلی مهمه و باعث میشه کیفیت تصویر حفظ بشه!
pop123
سه شنبه 29 شهریور 1390, 00:15 صبح
شما می تونید از کامپوننت Alphaskins استفاد کنید برای زوم
MohsenB
سه شنبه 29 شهریور 1390, 00:31 صبح
سلام
فکر کنم مشکلتون فرمت و کیفیت عکسی هست که انتخاب کردین .
اگه اشتباه نکم منظورتون بهم ریختگی اطراف لبه های مثلا نوشته ها هستش ؟
اگه اینطوریه شما باید از یه فرمت بیتوار ( Bitmap ) استفاده کنید . چون تو این نوع عکسها ، تصویر بصورت پیکسل به پیکسل ذخیره میشن و پیکسل ها روی پیکسلهای مجاور تاثیری ندارن و این توی فرمت JPG نیست .
پس از یه فرمت مثل bmp برا عکس ها استفاده کنید و یا همون JPG ها رو با کیفیت بالا ذخیره کنید . البته منبعی که اون عکس ها رو برمی دارین باید خودش کیفیتش خوب باشه .
پیشنهاد میکنم اگر میتونید از یه فرمت برداری مثل WMF استفاده کنید . در اینصورت هیچ افت کیفیتی تو هیچ سایز بزرگنمایی ندارین .
موفق و پیروز باشید .
MohsenB
سه شنبه 29 شهریور 1390, 11:54 صبح
این نوشته به وسیله mbshareat (http://barnamenevis.org/member.php?79490-mbshareat) پاک و از دید کاربران مخفی شده است.
دلیلPng هم بعد از آپلود بی کیفیت شد
سلام
اگر نمیشه عکسی رو که میخواید نمایش بدین فشرده کنید ( مثلا با WinRAR ) بعد ضمیمش کنید .
mbshareat
سه شنبه 29 شهریور 1390, 23:43 عصر
این هم فایل فشرده حاوی BMP:
(فکر کنم فهمیدم اشکال از کجا بود هنگام استفاده از مرورگر یه برنامه هم اجرا می کنم که تصویر اینترنتی رو با کیفیت پایین نشون بده و سرعت بالا بره!)
MohsenB
سه شنبه 29 شهریور 1390, 23:52 عصر
سلام
این مشکل از همون روش بزرگ کردن عکس هست که استفاده از این تابع ایجاد میکنه .
شما یا یه کامپوننت پیدا کنید که بتونه درست زوم کنه و یا از چند سایز عکس برای حالات مختلف نمایش استفاده کنید که اون تصاویر رو قبلا با یه نرم افزار گرافیکی مثل فوتوشاپ به اندازه دلخواهتون درآوردین .
mbshareat
پنج شنبه 31 شهریور 1390, 08:24 صبح
سلام خدمت بزرگان برنامه نویس
خدا رو شکر مشکل حل شد.
من در پس زمینه از یه بیت مپ به عنوان چرکنویس برای ترکیب حاشیه و متن به عنوان میانگیر استفاده می کردم که یادم رفته بود اندازش رو در حالت تمام صفحه بزرگ کنم! من اول تصویر رو از فایل تو این بیت مپ می ریزم و بعدش در Image !
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.