繁体   English   中英

调整bmp图片大小的程序中的{fseek(inptr,-(bi.biWidth * 3 + padding),SEEK_CUR);}是什么意思?

[英]what does this mean {fseek (inptr, - ( bi.biWidth * 3 + padding), SEEK_CUR);} in the program that resizes a bmp image?

我在这里不太了解此代码的必要性。

// skip over padding, if any
fseek(inptr, padding, SEEK_CUR);

// then add it back (to demonstrate how)
for (int k = 0; k < new_padding; k++)
{
    fputc(0x00, outptr);
}

if (repeat < n - 1)
{
    fseek(inptr, - (bi.biWidth * 3 + padding), SEEK_CUR);
}

没有完整的上下文,很难确认此代码片段的正确性,甚至相关性。

fseek通过padding字节向前移动输入流的指针。

然后,程序将new_padding空字节输出到输出流,大概与padding数量不同。 Microsoft的BMP文件格式需要在各个位置进行一些填充,以便于读取到内存中。

最后,再次使用fseek将输入流指针设置为向后移到像素行的开头(每个像素3个字节)加上它跳过的填充,但前提是(repeat < n - 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM