[英]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.