الانتقال إلى المحتوى الرئيسي

كيفية عرض صورة باستخدام لغة البرمجة سي

البرمجة في ج يسمح لك لتنفيذ المهام المختلفة ، بما في ذلك العمل مع الرسومات والصور. بمساعدة بعض الوظائف والمكتبات ، يمكنك عرض صورة على الشاشة وإجراء عمليات مختلفة معها.

في ج ، هناك عدة طرق لعرض صورة على الشاشة. واحدة من أسهل الطرق هي استخدام مكتبة "صورة ستب". تتيح لك هذه المكتبة تنزيل صورة من ملف ، ثم عرضها على الشاشة بتنسيق بايت.

أولا ، تحتاج إلى توصيل مكتبة "صورة ستب" إلى المشروع الخاص بك. يمكنك تنزيله من الموقع الرسمي وإضافة ملفات رأس وملفات مصدر المكتبة إلى مشروعك.

بعد توصيل مكتبة "صورة ستب" ، يمكنك استخدام وظيفة ستبي_لواد لتحميل صورة من ملف. ثم يمكنك استخدام وظائف أخرى للعمل مع بيانات الصورة وعرضها على الشاشة.

عرض صورة على الشاشة باستخدام ج: دليل مفصل

الخطوة 1: إعداد الصورة

قبل أن تتمكن من عرض صورة باستخدام لغة البرمجة ج ، تحتاج إلى إعداد الصورة في الشكل المناسب. وتشمل صيغ الصور الممكنة بمب ، ينغ ، جبيغ وغيرها.

الخطوة 2: توصيل المكتبات الضرورية

للعمل مع الصور بلغة البرمجة سي ، ستحتاج إلى مكتبات إضافية. على سبيل المثال ، يمكنك استخدام مكتبة سي القياسية لإدارة الذاكرة وتحميل بيانات الصورة ، وكذلك مكتبات الجهات الخارجية مثل ليبنغ أو ليبجبيغ للعمل مع تنسيقات محددة.

# تشمل 

# تشمل

# تشمل

// المكتبات المطلوبة

# تشمل

# تشمل

الخطوة 3: قراءة بيانات الصورة

بعد توصيل المكتبات الضرورية ، يمكنك البدء في تنزيل بيانات الصورة. اعتمادا على التنسيق المحدد ، سيكون الرمز مختلفا. وفيما يلي مثال على قراءة صورة في شكل بابوا نيو غينيا:

باطل قراءة الصورة (كونست شار * اسم الملف ، يونت 8_ت * * صورة البيانات ، يونت 32_ت * العرض، يونت 32_ت * الارتفاع) {

// Открытие файла

FILE* file = fopen(filename, "rb");

if (!file) {

printf("Не удалось открыть файл

");

return;

}

// Создание png_struct и png_info

png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);

if (!png_ptr) {

printf("Ошибка создания png_struct

");

fclose(file);

return;

}

png_infop info_ptr = png_create_info_struct(png_ptr);

if (!info_ptr) {

printf("Ошибка создания png_info

");

fclose(file);

png_destroy_read_struct(&png_ptr, NULL, NULL);

return;

}

// Установка функции обработки ошибок

if (setjmp(png_jmpbuf(png_ptr))) {

printf("Ошибка чтения файла PNG

");

fclose(file);

png_destroy_read_struct(&png_ptr, &info_ptr, NULL);

return;

}

// Настройка загрузки данных

png_init_io(png_ptr, file);

png_read_info(png_ptr, info_ptr);

// Получение информации об изображении

*width = png_get_image_width(png_ptr, info_ptr);

*height = png_get_image_height(png_ptr, info_ptr);

int color_type = png_get_color_type(png_ptr, info_ptr);

int bit_depth = png_get_bit_depth(png_ptr, info_ptr);

// Преобразование изображения в 8-битным RGBA форматом

if (bit_depth == 16)

png_set_strip_16(png_ptr);

if (color_type == PNG_COLOR_TYPE_PALETTE)

png_set_palette_to_rgb(png_ptr);

if (color_type == PNG_COLOR_TYPE_GRAY