الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل الصورة إلى Bytes

بدأه electronics في 12 مارس 2006 · 4 رد · 1,032 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

حاولت البحث في الموضوع ولكن لم أتوصل إليه مع اعتقادي أن الموضوع سهل جدا :^)

كل ما أريده هو تحويل الصورة إلى مصفوفة على شكل بايت تماما كما هو الحال مع النصوص

string XXX=".............................";
byte [] b = System.Text.Encoding.ASCII.GetByte(XXX);

وأريد استعادة الصورة فيما بعد كما هو الحال مع 

GetString(b);

ولكم جزيل الشكر

#2

عزيزي الكريم electronics

سوف تجد في المرفقات الكود الخاص بتحويل الصور إلى Streem وإستدعائها

ارجوا ان تستفيد منه

imageToolsStreem.txt

بأبي انت وأمي يــــــــــــــــــا رسول اللــــــــــــــــــــــــــــــــه

11_04_06_03_18_15_11447506951138477499_kuth.gif

تذكر دائما ً إنك لا تعيش وحدك

تذكر ان ثمة كثيرون يحتاجون لك

ربما يحتاجون اشياء اكثر بساطة من ان تلتفت انت إليها

ربما يحتاجون إلى كلمة تشجيع ..... في زمن سيطر فيه المال وضاع الحب وتم قتل المشاعر

ربما يحتاجون إلى كتاب ينقلهم إلى عالم .... لا يستطيع الإنسان الذهاب إليه أو العيش.

لا تمشي امامي فقد لا أتبعك

ولا تمشي خلفي فقد لا أقودك

ولكن امشي بجانبي ولنكن اصدقاء

كل زائد تافه مرفوض في عالم البرمجة

emadty@yahoo.com

#3

أخي الكاندام شكرا لك

كنت قد حاولت استخدام نفس هذه الطريقة إلا أنها لم تأتي بنتيجة سوف أراجع البرنامج من جديد قد يكون هناك خطأ آخر على كل حال شكرا لك

#4

السلام عليــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــكم

اوجه ندائى الي المسؤلين القائمين على هذ المنتدى الغلي والرائع كذالك وانا اعتز بها

ولكن يااخواني دائما تواجهني مشاكل عندما اريد ان ارفع موضوع .يقول لي خطأ وانا عضو في المنتدي واسمي هوhamoudi1010

#5

السلام عليكم ورحمة الله وبركاته

عندي هذا الكود اتمني انه يفيد

Bitmap bit=new Bitmap(filename);
public static unsafe Matrix Bitmap2Matrix(Bitmap bit)
		{
			int w = bit.Width;
			int h= bit.Height;
			if(bit.PixelFormat == PixelFormat.Format16bppGrayScale)
			{
				Matrix m = new Matrix(w,h, typeof(byte));
				BitmapData bd = bit.LockBits(new Rectangle(0,0,w,h),ImageLockMode.ReadOnly,bit.PixelFormat);

			{
				byte * p = (byte*)MATInvoke.mxGetData(m).ToPointer();


				for(int j = 0; j < w; j++)
				{
					short * pp = (short*)bd.Scan0;
					pp += j;
					for(int i = 0; i < h; i++, pp+= bd.Stride)
						*p++ = (byte)*pp;
				}
			}
				bit.UnlockBits(bd);
				return m;
			}
			else if(bit.PixelFormat == PixelFormat.Format32bppRgb)
			{
				Matrix m = new Matrix(w*3,h,typeof(byte));
				byte * p = (byte*)MATInvoke.mxGetData(m).ToPointer();
				BitmapData bd = bit.LockBits(new Rectangle(0,0,w,h),ImageLockMode.ReadOnly,bit.PixelFormat);


				for(int j = 0; j < w; j++)
				{
					byte * pp = (byte*)bd.Scan0;
					pp += j*4;
					for(int k = 0; k < 3; k++, pp++)
					{
						byte * spp = pp;
						for(int i = 0; i < h; i++, spp+= bd.Stride)
							*p++ = *spp;
					}
				}
				bit.UnlockBits(bd);
				return m;
			}
			else if(bit.PixelFormat == PixelFormat.Format24bppRgb)
			{
				Matrix m = new Matrix(h,w,3,typeof(byte));
				byte * p = (byte*)MATInvoke.mxGetData(m).ToPointer();
				BitmapData bd = bit.LockBits(new Rectangle(0,0,w,h),ImageLockMode.ReadOnly,bit.PixelFormat);
				byte * pp = (byte*)bd.Scan0;

				// i*w*3+j*3+c => c*h*w+j*h+i
				for(int i = 0; i < w; i++, pp+=3)
				{
					byte * sp = pp;
					for(int j = 0; j < h; j++, p++, sp += bd.Stride)
					{
						p[0] = sp[2];
						p[h*w] = sp[1];
						p[h*w*2] = sp[0];
					}
				}


				bit.UnlockBits(bd);
				return m;
			}
			else
				return null;
		}

مواضيع مشابهة