Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image .tga图像:仅当我读取前半个单词时,应该由单词表示的值才是正确的_Image_File_Tga - Fatal编程技术网

Image .tga图像:仅当我读取前半个单词时,应该由单词表示的值才是正确的

Image .tga图像:仅当我读取前半个单词时,应该由单词表示的值才是正确的,image,file,tga,Image,File,Tga,我有以下问题:我试图读取一个tga文件的头,所以我继续得到一个tga文件的结构:它说图像的宽度和高度在头中存储为一个字或两个字节的数据。但随后我查看了tga文件头的十六进制代码(前18个字节): 这里最后的第三个和第二个字是宽度和高度。所以根据这一点,我的tga文件应该是8.192px宽,8.192px高(0x2000),但实际上图像只有32px宽,32px高(0x20-第一个字节) 你对此有什么解释吗?让我们用终端中的ImageMagick制作一幅513px宽、32px高的图像,并将其转储:

我有以下问题:我试图读取一个tga文件的头,所以我继续得到一个tga文件的结构:它说图像的宽度和高度在头中存储为一个字或两个字节的数据。但随后我查看了tga文件头的十六进制代码(前18个字节):

这里最后的第三个和第二个字是宽度和高度。所以根据这一点,我的tga文件应该是8.192px宽,8.192px高(0x2000),但实际上图像只有32px宽,32px高(0x20-第一个字节)


你对此有什么解释吗?

让我们用终端中的ImageMagick制作一幅513px宽、32px高的图像,并将其转储:

magick -size 513x32 xc:red tga: | xxd -c 16
我们得到这个:

根据你的维基百科链接。字段如下所示:

  • 红色-字段1-ID长度
  • 绿色-字段2-彩色贴图类型
  • 蓝色-字段3-图像类型
  • 青色-字段4-彩色地图规范
  • 品红色-x,y原点-[0,0]
  • 黄色宽度
  • 白色高度
那么,让我们看看宽度。我做了513px,也就是2x256+1。因此,希望您能看到Targa规范是小端字节,其中最低有效字节排在第一位,较高有效字节排在第二位。这意味着
0102
1
小而不重要的字节和2*256大而不重要的字节。同样地,高度的
20000
表示2个16小字节的批次和0个大的胖字节的批次

TLDR:Targa格式是little endian格式。最不重要的字节排在第一位,然后是更重要的较大字节

magick -size 513x32 xc:red tga: | xxd -c 16