我在内存中有一个原始图像,组织为 32 位 RGB 值数组。我想尽快把它写到一个图像文件中,这样我就可以释放内存。有没有办法执行以下操作来编写未压缩的 JPEG、PNG 或 TIFF 图像?或者我应该说,哪些图像格式与这种写入原始像素数据的方法兼容?请注意,左上角的像素位于像素数据的前 4 个字节中。
void write_image(uint32_t *pixels, int width, int height) {
FILE *file=fopen("file.jpg","wb");
write_header (file, width, height);
fwrite (pixels,1,width*height*4,file); // write raw pixel data
write_end (file);
fclose(file);
}
Run Code Online (Sandbox Code Playgroud)