سؤال

أنا استخدم BitConverter.ToInt32 إلى حزمة 3 byte القيم في int, ، مثل ذلك:

byte R = 0;
byte G = 0;
byte B = 0;
int i = BitConverter.ToInt32(new byte[] { R, G, B, 0 }, 0);

هل هناك طريقة أسرع للقيام بذلك لا تنطوي على إنشاء جديد int كل مرة؟ إخراج البايتات من int سهل:

int i = 34234;
byte B = (byte)(i >> 0);
byte G = (byte)(i >> 8);
byte R = (byte)(i >> 16);

هل هناك طريقة بسيطة لعكس هذه العملية واستخدام تغيير البتات لكتابة بايت RGB مرة أخرى على موجود int?

هل كانت مفيدة؟

المحلول

int i = (B << 0) | (G << 8) | (R << 16);

نصائح أخرى

يجب أن تنظر بنية اللون. لديها خصائص R و G و B وطرق FromArgb () و toargb ().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top