PDA

View Full Version : فایل bmp



behzadk
دوشنبه 23 مهر 1386, 16:15 عصر
با سلام
من یه فایل bmp را باز کردم و می خوام این عکس تو c نمایش بدم من با 16 تا رنگ چه جوری می توانم یک عکس با عمق رنگ 24 bit را نمایش دهم
با تشکر

mzjahromi
دوشنبه 23 مهر 1386, 19:50 عصر
به نظر خودت این کار عملیه؟

behzadk
دوشنبه 23 مهر 1386, 22:04 عصر
با تشکر از نظرتان
تو تایپ یه اشتباه شده 256 رنگ
در فایل bmp با عمق رنگ 24 1 byte برا هر سه رنگ در نظر گرفته شده مثلا اگر vb بود با تابع rgb حل می شد ولی اینجا اون امکانات وجود نداره و شماره رنگ می خواد من می خواستم بدونم که چه طوری میشه این سه رنگ را به شماره تبدیل کرد
با تشکر

mzjahromi
سه شنبه 24 مهر 1386, 07:48 صبح
نمیدونم من منظورتون رو متوجه نمی شم یا شما دچار اشتباه شدید؟
خوب برای 256 رنگ هر بایت یک پیکسل است
حلا اگه عمق رنگتون 24 بیت باشه مشخصه که هر 3 بایت یک پیکسل رو مشخص میکنه. حالا میمونه اینکه کدوم بیت ب ارزشتر و کدوم کم ارزش تره که اونم باید تست کنی
من تا 256 بیشتر رسم نکردم

behzadk
سه شنبه 24 مهر 1386, 08:53 صبح
با تشکر از راهنمایی شما
من مشکلم این جاست که من 3 byte رنگ در اختیار دارم من با این سه بایت چه جوری می تونم شماره رنگ تو 256 رنگ را درست کنم که این رنگ به رنگ اصلی نزدیک باشه و وقتی که نمایش عکس تمام شد عکس چیزی شبیه به همون عکسی باشه که مثلا acdsee باز میکنه

seyedof
پنج شنبه 03 آبان 1386, 09:55 صبح
سلام
مودهای گرافیکی 8 بیت یا 4 بیت اصطلاحا مودهای Palette هستند یعنی در اوونها رنگ به صورت تعیین یک rgb مشخص نمیشه بلکه شما یک جعبه رنگ مثلا 15 تایی دارید که فقط مجاز هستین از رنگهای داخل این جعبه رنگ استفاده کنید و اون اعداد 4 بیتی تصویر در واقع index هایی هستند به این جعبه رنگ.
شما برای اینکه عکس rgb رو توی مود 4 بیت نمایش بدین باید تعداد رنگهاش رو کم کنید. اینکار به وسیله یک سری الگوریتم انجام میشه که نمونه اش رو خیلی از برنامه های گرافیک دارند. یکی از این روشها اینه که شما باید برای تک تک پیکسهای عکستون توی palette جستجو کنید و نزدیکترین رنگ به اوون رو پیدا کنین و اوون رو به جای پکسل rgb نمایش بدید. البته واضح است که کیفیتش خیلی میاد پایین چون 16 میلیون رنگ کجا و 16 رنگ کجا !
البته توی مودهای 8 بیتی یعنی 256 رنگ وضعیت بهتره.
نوشتن برنامه اش کار سختی نیست و نکته اش همون پیدا کردن فاصله بین رنگهای عکس و رنگهای داخل Palette است.
ممنون علی