首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PCX文件的图像数据

PCX文件的图像数据
EN

Stack Overflow用户
提问于 2009-11-07 03:18:00
回答 2查看 2.9K关注 0票数 2

我有一个很大的二进制文件,里面存储了很多文件。我正在尝试从文件中复制PCX图像的数据,并将其写入一个新文件,然后我可以在图像编辑器中打开该文件。

在获得PCX文件头的规范后,我想我已经在大二进制文件中找到了图像。我的问题是,我不能计算出在头部之后我应该读取多少字节。我读过关于解码PCX文件的文章,但我不想解码任何东西。我想读取编码后的图像数据,并将其写入一个单独的文件,这样图像编辑器就可以在中打开。

这是标题。我已经包含了图像的值,因为我猜它们可以用来确定图像数据的“文件结尾”。

代码语言:javascript
复制
struct PcxHeader
{
BYTE Identifier;        // PCX Id Number (Always 0x0A) // 10  
BYTE Version;           // Version Number    // 5  
BYTE Encoding;          // Encoding Format    // 1  
BYTE BitsPerPixel;      // Bits per Pixel    // 8  
WORD XStart;            // Left of image     // 0  
WORD YStart;            // Top of Image     // 0  
WORD XEnd;              // Right of Image    // 319  
WORD YEnd;              // Bottom of image    // 199  
WORD HorzRes;           // Horizontal Resolution   // 320  
WORD VertRes;           // Vertical Resolution   // 200  
BYTE Palette[48];       // 16-Color EGA Palette    
BYTE Reserved1;         // Reserved (Always 0)  
BYTE NumBitPlanes;      // Number of Bit Planes   // 1  
WORD BytesPerLine;      // Bytes per Scan-line   // 320  
WORD PaletteType;       // Palette Type     // 0  
WORD HorzScreenSize;    // Horizontal Screen Size   // 0  
WORD VertScreenSize;    // Vertical Screen Size   // 0  
BYTE Reserved2[54];     // Reserved (Always 0)
};
EN

回答 2

Stack Overflow用户

发布于 2009-11-07 03:27:48

PCX文件格式有三个组成部分:

  • 128字节的标题(虽然实际使用的较少,但它是128字节的long)
  • variable-length图像数据
  • 可选的256色调色板(尽管存在不正确的PCX文件,调色板大小不是256色)。

Wikipedia artice

由于PCX压缩方案,找到图像数据实际长度的唯一方法是读取和处理它。这项工作变得很困难,因为这种格式允许压缩数据超出图像尺寸,通常会将其填充到下一个8或16行边界。

票数 4
EN

Stack Overflow用户

发布于 2009-11-07 03:21:00

在不太了解PCX文件格式的情况下,我可以对此进行最佳猜测:

代码语言:javascript
复制
 bytesAfterHeader = header.BytesPerLine * header.VertRes;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1689715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档