简体   繁体   中英

Create a grayscale image from 16-bit data using C++

I have an array of 16-bit values and I want to create an image (such as BMP) so that I can view it. Does anyone have suggestions of how to do this? Thanks

Say your image is 200px by 100px. Write the 20,000 16-bit vales to a binary file.

At the commandline, run ImageMagick :

magick -depth 16 -size 200x100 gray:yourFile.bin image.png

Or, if you want a JPG

magick ... image.jpg

For a tiny bit more effort, you could write a 16-bit PGM file which would have the benefit that it contains its dimensions and bit depth in a small ASCII header so the conversion in ImageMagick is simpler, and other programs such as GIMP can read it:

magick yourFile.pgm  image.jpg

The header would be:

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

See Wikipedia NetPBM article .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM