转储原始图像数据
Dump raw image data
我有一个图像以原始字节的形式存储在内存中,即我有一个指向图像数据的内存位置的char*
。现在,我需要以某种方式验证图像数据是否合法。
我目前尝试的是简单地将字节转储到文件中。我尝试转储到 3 种类型的文件中,但没有运气:
std::ofstream ofs;
ofs.open("Image.raw", std::ofstream::out);
ofs.write((char*)imgData, imageInfo.imageLen);
ofs.close();
// Have also tried "Image.tiff" and "Image.ppm"
有什么方法可以查看内容吗?值得一提的是,我正在Win平台上编写此代码。几年前,我记得在MAC OS X上做了类似的事情,并产生了成功的结果!
您可以
像已经拥有的那样直接将其写成二进制的RGB - 例如名为image.rgb
的文件。
然后使用ImageMagick
,它安装在大多数Linux发行版上,可用于OSX和Windows,将其转换为PNG,JPEG或更常见的内容:
convert -size 300x400 -depth 8 image.rgb result.png
或
convert -size 300x400 -depth 8 image.rgb result.jpg
您需要告诉ImageMagick
图像的尺寸,因为它们显然没有嵌入到原始文件中,就像它们在带有标题的 JPEG 或 PNG 中一样。
如果您选择的文件名不以 .rgb 结尾,则需要在它前面加上 RGB:像这样
convert -size ... RGB:something.bin result.png
相关文章:
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- VTK 图像数据,访问数组中的 1 个图像
- 处理来自IMFSourceReader和IMFSample的图像数据
- 如何返回定义良好的内存部分?例如来自图像数据的像素的颜色值
- 如何从amd gpus的显示输出中获取图像数据
- 如何将OpenCV图像数据从Python转换为C++?
- WIC - Exif 元数据查询 - 如何获取图像说明
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- 以高数据速率发送图像数据超过提升::asio::udp?
- 如何将图像数据从搜索窗口中移动到本地存储器OpenCL
- 如何从 GIFLIB 保存图像结构中获取 RGB 颜色数据
- 如何将图像转换为C 中的RGB数据值
- 在C 中显示图像及其元数据
- 如何使用stb_image将像素颜色数据写入 BMP 图像文件?
- 表示图像矩阵的理想数据结构是什么?
- 如何从内存中读取原始图像 (YUV 4:2:2) 格式的图像数据
- 如何使用JNI + OpenCV + NDK获取原始的android相机传感器图像数据
- 使用Sapera拍摄图像并将数据复制到矢量
- 将图像数据尽快写入磁盘