سؤال

كيف يمكنني تحويل البيكسلات في صورة (ملف .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.
هذا سيوفر لك الوقت (وتجنب الحشرات)

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