PDA

View Full Version : سوال: خواندن و نوشتن عكس به صورت بيتي



mahdi bg
یک شنبه 13 تیر 1389, 19:15 عصر
سلام
چطوري مي تونم محتويات يك فايل عكس رو بصورت بيتي بخونم - پيكسل به پيكسل
(مثلا اگر عكس 256 رنگ داشته باشه - تعداد بيت هاي هر پيكسل برابر 8 تا ميشه)


حالا فرض كنيم اين 8 بيت رو تغيير دادم و مي خوام دوباره توي يك فايل ديگه بنويسم بايد چكار كنم.
ممنون

codelover
یک شنبه 13 تیر 1389, 20:14 عصر
سلام

اول یه نمونه از کلاس bitmap بساز


Bitmap pic = new Bitmap(@"D:\picture.bmp");

بعد این جوری پیکسل ها شو بخون


int red =pic.GetPixel(x,y).R;
int green =pic.GetPixel(x,y).G;
int blue =pic.GetPixel(x,y).B;

بعد این جوری پیکسل ها شو بنویس


pic.SetPixel(x,y,color);

بعد که کارت تموم شد اینجوری Saveکن


pic.save(@"D:\picture.bmp");

هر جاشو نفهمیدی بگو تا توضیح بدم

mahdi bg
یک شنبه 13 تیر 1389, 20:27 عصر
سلام

من مي خو.استم بصورت بيتي بخونم؟
مثلا پيكسل هام 256 تا رنگ ممكنه داشته باشن(0-255) مي خوام اونو به صورت بيتي (مثلا0101010 ) بخونم
و بعدش بيت سومش رو از 0 تغيير بدم به 1 و دوباره ذخيره كنم.
نه بصورت عددي
واسه اين كار بايد چكار كنم

codelover
یک شنبه 13 تیر 1389, 20:46 عصر
سلام

من مي خو.استم بصورت بيتي بخونم؟
مثلا پيكسل هام 256 تا رنگ ممكنه داشته باشن(0-255) مي خوام اونو به صورت بيتي (مثلا0101010 ) بخونم
و بعدش بيت سومش رو از 0 تغيير بدم به 1 و دوباره ذخيره كنم.
نه بصورت عددي
واسه اين كار بايد چكار كنم


کاری نداره همون عدد های رو که رو پست قبلی گفتم و از پیکسل گرفتی رو به دودویی تبدیل کن
و بعد با استفاده از شیفت بیتی >> یا << هر بیتی رو که می خوای عوض کن و بعد دوباره ذخیره کن

البته با استفاده از and هم میتونی
مثال
01011
00100

که وقتی با هم and بشن بیت سومش ست میشه 01111

درست شد ؟

alirat
دوشنبه 14 تیر 1389, 02:33 صبح
کاری نداره همون عدد های رو که رو پست قبلی گفتم و از پیکسل گرفتی رو به دودویی تبدیل کن
و بعد با استفاده از شیفت بیتی >> یا << هر بیتی رو که می خوای عوض کن و بعد دوباره ذخیره کن

البته با استفاده از and هم میتونی
مثال
01011
00100

که وقتی با هم and بشن بیت سومش ست میشه 01111

درست شد ؟


merc in tozihati ke dadi kheili vazeh va roshane dastet dard nakone:لبخند: