Я искал код на С++, который дает мне значения RGB всех пикселей файла png.
Поэтому я много искал в Интернете и нашел разные способы сделать это, например, с помощью libpng, OpenCV, Magick++, CImg и т. д., и я просто решил использовать CImg (в основном потому, что я не знаю, как это сделать). используйте OpenCV, хотя я много искал о том, как установить и использовать его в Code::Blocks, и это как-то связано с mingw64, который установщик, который я скачал из Sorceforge, продолжает выдавать мне ошибки в середине загрузки некоторых файлов, и о для остальных я просто не могу найти подходящий заголовочный файл (например, Magick++.h), совместимый с Code::Blocks... Так что, если вы думаете, что некоторые из них будут лучше и проще, чем CImg.h, то я Буду признателен, если вы предоставите мне ссылку для скачивания шапки или любую другую необходимую вещь)
Итак, вот код, который я нашел с Cimg:
#include <windows.h>
#include <iostream>
using namespace std;
#include <CImg.h>
using namespace cimg_library;
int main()
{
CImg<unsigned char>src("twittericon.png");
int width = src.width();
int height = src.height();
cout << width << "x" << height << endl;
for (int r = 0; r < height; r++)
for (int c = 0; c < width; c++)
cout << "(" << r << "," << c << ") ="
<< " R" << (int)src(c,r,0,0)
<< " G" << (int)src(c,r,0,1)
<< " B" << (int)src(c,r,0,2) << endl;
return 0;
}
Но проблема в том, что после запуска программы она выдает ошибку: CImg::load(): не удалось распознать формат файла 'twittericon.png'
Что мне делать с ошибкой?
И, кстати, знаете ли вы какой-нибудь лучший способ прочитать эти значения RGB файла png? Если вы это сделаете, не могли бы вы также предоставить мне небольшую инструкцию для этого? Спасибо.
libpng
для чтения/записи файлов PNG. Я подозреваю, что вместо этого вам лучше установить ImageMagick, потому что CImg может использовать его для чтения файлов большинства форматов. Не забудьте установить флажок Установить устаревшие инструменты при установке ImageMagick. - person Mark Setchell   schedule 15.02.2018