البرمجة في ج يسمح لك لتنفيذ المهام المختلفة ، بما في ذلك العمل مع الرسومات والصور. بمساعدة بعض الوظائف والمكتبات ، يمكنك عرض صورة على الشاشة وإجراء عمليات مختلفة معها.
في ج ، هناك عدة طرق لعرض صورة على الشاشة. واحدة من أسهل الطرق هي استخدام مكتبة "صورة ستب". تتيح لك هذه المكتبة تنزيل صورة من ملف ، ثم عرضها على الشاشة بتنسيق بايت.
أولا ، تحتاج إلى توصيل مكتبة "صورة ستب" إلى المشروع الخاص بك. يمكنك تنزيله من الموقع الرسمي وإضافة ملفات رأس وملفات مصدر المكتبة إلى مشروعك.
بعد توصيل مكتبة "صورة ستب" ، يمكنك استخدام وظيفة ستبي_لواد لتحميل صورة من ملف. ثم يمكنك استخدام وظائف أخرى للعمل مع بيانات الصورة وعرضها على الشاشة.
عرض صورة على الشاشة باستخدام ج: دليل مفصل
الخطوة 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