我一直在寻找一个好的,快速的解决方案,并没有找到任何令我满意的东西。它似乎应该是微不足道的 - 在一些库中只需要一两次调用函数即可 - 但似乎并非如此。 libjpeg和libtiff缺乏良好的文档和人们发布的解决方案涉及了解如何生成图像并编写约50行代码。你们如何在C++中做到这一点?将C++中RGB值数组转换为图像文件的最简单方法是什么?
3
A
回答
7
如果你想“简单”了别的什么,然后看看stb_image_write.h。
这是一个单独的头文件,其中包括支持编写BMP,PNG和TGA文件。每个格式只需一个电话:
int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes);
int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data);
int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data);
+0
这正是我所期待的。完美工作。谢谢! – Andrew
0
在我Graphin库,你可以找到简单的功能:
bool EncodeJPGImage(image_write_function* pctl, void* streamPrm, unsigned width, unsigned height, unsigned char** rows, unsigned bpp, unsigned quality)
,做这种转换。见http://code.google.com/p/graphin/source/browse/trunk/src/imageio.cpp#412
3
最简单的方法是将其保存为Netpbm image。假设你的数组被打包成每像素24位而像素之间没有填充,那么你可以写出一个超级简单的头部,然后是二进制数据。例如:
void save_netpbm(const uint8_t *pixel_data, int width, int height, const char *filename)
{
// Error checking omitted for expository purposes
FILE *fout = fopen(filename, "wb");
fprintf(fout, "P6\n%d %d\n255\n", width, height);
fwrite(pixel_data, 1, width * height * 3, fout);
fclose(fout);
}
相关问题
- 1. 将char数组转换为WCHAR数组最简单的方法是什么?
- 2. 在JAVA中,将RGB图像的RGB值转换为二进制的最快方法是什么?
- 3. 将ndarray转换为cv :: Mat的最简单方法是什么?
- 4. 将xml转换为html最简单的方法是什么?
- 5. 将数组转换为向量最简单的方法是什么?
- 6. 将数组转换为xml字符串的最简单方法是什么?
- 7. 将C++结构转换为c#最简单的方法是什么?
- 8. 在C++中将UnicodeString转换为const char *的最简单方法是什么?
- 9. 将文件转换为WCF兼容流的最简单方法是什么?
- 10. 在javascript中将123456789值转换为123.456.789的最简单方法是什么?
- 11. 将pygame中的图像转换为RGB值的二维数组
- 12. 将MySQL结果转换为简单数组的最佳方式是什么?
- 13. 在c#中加密文件最简单的方法是什么?
- 14. Python:什么是从time.time()值转换为time.strftime()值的最简单方法?
- 15. 将Blob转换为字节数组的最简单方法
- 16. 在ASP.net中将BMP转换为PDF的最简单方法是什么
- 17. 将数组值重置为0的最简单方法是什么?
- 18. 什么是最简单的RGB图像格式?
- 19. 最简单的方法将文件放入数组中? - c#
- 20. 预览图像列数据的最简单方法是什么?
- 21. PHP:将类常量转储到数组中的最简单方法是什么
- 22. c - 将char *数组转换为int和float的最有效方法是什么?
- 23. 使用Java 8将字符串数组转换为int数组的最简单方法是什么?
- 24. 将Int32的字节转换为字符串的最简单方法是什么?
- 25. 在C中测试空值的最简单方法是什么?
- 26. 在C++中将“成员函数指针”转换为函数指针的最简单方法是什么?
- 27. 如何将索引图像转换为C#中的RGB图像?
- 28. 将字符串转换为流的最简单方法是什么?
- 29. 将现有项目转换为Sass最简单的方法是什么?
- 30. 将表格标签转换为标准css最简单的方法是什么?
我个人使用FreeImage,但我确定有其他图像库支持多种格式。可能是一个适合你的具体需求。 – Frigo