C++ 使用C+;从16位数据创建灰度图像+;

C++ 使用C+;从16位数据创建灰度图像+;,c++,image,C++,Image,我有一个16位值的数组,我想创建一个图像(如BMP),以便查看它。有人对如何做到这一点有什么建议吗? 谢谢说你的图像是200像素乘100像素。将20000个16位值写入二进制文件 在命令行中,运行ImageMagick: magick -depth 16 -size 200x100 gray:yourFile.bin image.png 或者,如果你想要一个JPG magick ... image.jpg 只需稍加努力,您就可以编写一个16位PGM文件,其优点是它在一个小的ASCII头中包含

我有一个16位值的数组,我想创建一个图像(如BMP),以便查看它。有人对如何做到这一点有什么建议吗?
谢谢

说你的图像是200像素乘100像素。将20000个16位值写入二进制文件

在命令行中,运行ImageMagick

magick -depth 16 -size 200x100 gray:yourFile.bin image.png
或者,如果你想要一个JPG

magick ... image.jpg
只需稍加努力,您就可以编写一个16位PGM文件,其优点是它在一个小的ASCII头中包含其尺寸和位深度,因此ImageMagick中的转换更简单,其他程序(如GIMP)可以读取它:

magick yourFile.pgm  image.jpg
标题应为:

P5
200 100
65535
... binary data as above ...

请参阅。

这不是一个完整的答案,但它很容易做出,无需太多思考。使用libgd、Qt、OpenCV或Image Magick之类的库,或者自己创建图像文件。JPEG有它自己的C++库,我应该补充一下,我正在寻找一些易于使用的东西。我不是一个真正的Windows程序员,所以不想使用复杂的东西。谢谢,你应该试试libgd。我直到现在才知道,但这个例子似乎很简单。创建图像的非常短的代码请提供更多上下文。到目前为止您尝试了什么,您的具体问题是什么。还有,您使用的是什么颜色空间,是RGB565、16位灰度还是其他颜色?谢谢,这似乎是一个非常简单的解决方案。