我需要从实际图像文件中计算图像的宽度和高度,所以我正在用打开的文件读取图像。所以我有一堆字符和数字以及一切似乎毫无意义的东西,他们可能会提供rgb信息。 我只想用原始文件信息计算图像的大小 我使用Erlang语言进行编程,但只要我们不使用内置库,任何语言的代码都会有用,因为我们正在使用原始文件。
提前感谢大家的帮助
答案 0 :(得分:3)
我通过详细了解每种格式找到答案, 所以它就像这样
JPG:你可以在字节“255,192,0,17,8”之后找到宽度和高度之后的大小信息
PNG:您可以在“IHDR”之后找到它
GIF:您可以在“GIF89a”之后找到它
有更多信息,但这是互联网上最常见的图像类型
谢谢大家的时间
答案 1 :(得分:0)
我假设你说“原始”意味着你只有像素值 在这种情况下,并不总是有办法知道宽度和高度。
假设您阅读了400像素。在这种情况下,有效图像侧可以是400的任何完全因式分解,例如, 1x400,2x200,4x100,8x50,20x20等也可换位。
更不用说许多图像格式包含一些不是4,8或16倍的像素行的填充......
答案 2 :(得分:0)
它在图像文件中的编码方式取决于图像类型,希望也可以在图像文件中编码。您可以查看问题Getting Image size of JPEG from its binary以获取JPEG编码的示例。
答案 3 :(得分:0)
如果您的数据未知,请使用Octave并加载图像。然后看看这个页面:
http://www.gnu.org/software/octave/doc/interpreter/Displaying-Images.html
用于显示图像的命令。希望通过一些操作它会起作用。这适用于原始图像,但有特定的解码器。一旦了解了图像的样子,就可以编写等效的C代码。