没有加载的图像尺寸
Image Dimensions without loading
我正在寻找一种方法来获得磁盘上图像的宽度和高度,而无需将整个图像加载到内存中。
我需要支持BMP和PNG图像;TGA也不错。
我已经在使用DirectX11, DirectX工具箱,CxImage和Boost库,所以用这些库中的一个来做这件事会很好。但是,我也愿意使用另一个库
对于BMP,读取第18到21个字节来获得宽度,读取第22到25个字节来获得高度。
对于PNG,从文件的IHDR块中读取尺寸,该块看起来从文件的前八个字节和IHDR块本身的头的八个字节之后开始。第16到19个字节表示宽度,第20到23个字节表示高度。
同样,对于TGA,你可以读入前18个字节(有建议的注释)到TGA头struct
,然后解引用结构实例的width
和height
属性。
在c++中,您可以使用标准的C I/O(例如,fopen()
fseek()
和fread()
)来打开,移动和读取文件指针中的字节。您不需要读取整个文件:只需移动到正确的字节偏移量,然后读取正确的字节数。
相关文章:
- 无法将图像加载到纹理矢量 (SFML)
- 如何将硬编码图像加载到 OpenGL 纹理中
- C++ SDL2 图像加载格式与.bmp不同
- 土壤图像加载库参数
- 示例文件中的CImg图像加载错误
- OpenGL图像加载64位深度
- SFML图像加载在发布版本上失败 - 文件名损坏
- 如何将图像加载到painter.drawimage函数
- 将图像加载到Mat-vvector<向量<垫子>>
- OpenCV图像加载程序退出
- 从字节数组将图像加载到图形视图中
- 将图像加载到现有Mat中
- 处理文件和图像加载异常的最佳方法是什么?
- 将PNG或JPG图像加载到CMFCToolBarImages中
- stb图像加载库返回白色纹理
- 创建垫子后,从字节向量将图像加载到垫子上
- 图像加载功能不工作
- 将UTF-16图像加载到内存中
- 我怎么能得到像素的颜色在我的图像(加载灰色)
- 正在将位图图像加载到按钮