Можно ли создать образ с C ++? - PullRequest
1 голос
/ 23 августа 2010

Можете ли вы создать PNG, GIF и т. Д. С помощью C ++ для Windows?

Если это возможно, то как?Например, как вы можете сделать изображение в формате png только одним сплошным цветом.

Просто пример "Привет, мир!"

Ответы [ 4 ]

5 голосов
/ 23 августа 2010

Когда кто-то спрашивает вас о Hello world, просто скажите Hello world ...

#include "opencv/cxcore.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"

int _tmain(int argc, _TCHAR* argv[])
{
    cv::Mat image(480, 640, CV_8UC3);
    cv::putText(image, "Hello world", cvPoint(320, 200), 
        CV_FONT_HERSHEY_SIMPLEX, 1, cvScalar(255, 0, 0));
    cv::imwrite("output.tif", image);
    return 0;
}
2 голосов
/ 23 августа 2010

Да, это возможно. Некоторые библиотеки для работы с изображениями включают ImageMagick / GraphicsMagick (тот же API), CImg и OpenCV . OpenCV, безусловно, самый мощный, но и самый сложный в использовании. CImg, вероятно, самый простой в использовании, и я настоятельно рекомендую его для начинающих ... вы в основном создаете экземпляр типа CImg , заполняете пиксели и затем вызываете «save», который автоматически выводит тип и знает, как его кодировать в зависимости от расширения файла, которое вы ему даете.

2 голосов
/ 23 августа 2010

Для PNG попробуйте библиотеку PNGWriter: http://pngwriter.sourceforge.net/

1 голос
/ 23 августа 2010

Изображения - это просто двоичные файлы, и C ++ может легко записывать двоичные файлы.Форматы изображений включают множество сложных алгоритмов сжатия, поэтому сделать это не всегда просто.

Как правило, лучше всего использовать библиотеку C ++, которая может обрабатывать загрузку / сохранение таких файлов, чтобы вы могли беспокоиться о более важных вещах, таких каквам бы действительно хотелось, чтобы эти картинки были в них.

Imag http://www.imagemagick.org - это популярное изображение, используемое несколькими проектами с открытым исходным кодом, но есть много других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...