C ++ تحويل الصورة إلى مجموعة عدد صحيح
-
27-09-2019 - |
سؤال
كيف يمكنني تحويل البيكسلات في صورة (ملف .png) إلى صفيف عدد صحيح ، حيث يتم تحويل كل بكسل إلى مكافئ صحيح ARGB؟ ليس صفيف عدد صحيح ثنائي الأبعاد بالمناسبة ، واحد 1D (حيث يكون الوصول من خلال الصفيف [ROW*WIDTH+COL]).
شكرًا.
المحلول
بمجرد قراءة بيانات الصورة إلى بعض المخزن المؤقت ، يجب على الممثلين العاديين القيام بالخدعة:
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file ("image.png", NULL);
unsigned char *pixels = gdk_pixbuf_get_pixels (pixbuf);
int *array = reinterpret_cast<int*>(pixels);
يستخدم مثال مكتبة GDKPixBuf ، ولكن يجب أن تكون المكتبات الأخرى متشابهة.
نصائح أخرى
ما لم تكن تفعل ذلك من أجل الاهتمام والتعلم ، فإنني أوصيك باستخدام مكتبة طرف ثالث ، على سبيل المثال ImageMagick.
هذا سيوفر لك الوقت (وتجنب الحشرات)
لا تنتمي إلى StackOverflow