我用这个
GetClipboardData(CF_DIB);
我将其视为位图信息标题并考虑1.双向宽度1.双向高度1.比特数24与321.如果biCompression是BI_BITFIELDS,则i跳过像素数据的前3 * 4字节。大多数时候,当我复制一个图像,我可以从它的像素数据刚刚好。但当从某些应用程序,如电报复制,有时颜色是混乱的,有时图像是歪斜的,各种疯狂的文物发生时,试图查看剪贴板图像。我没有看到任何特殊的位图信息头中的这些图像,我渲染不正确。什么可能是我可能忘记处理?
xwbd5t1u1#
关于Microsoft位图,一个鲜为人知的事实是每行都填充了4字节的偶数倍。很自然地假设一行紧接着下一行,但每行可能有1到3字节的填充,这会使对齐方式出错。您会看到颜色不正确,或者每行从正确的位置移动时图像歪斜。如果您的像素都是4字节(RGBA)或图像宽度是4的倍数(比随机概率更常见),则每行已经是4字节的倍数,您不会注意到问题。
1条答案
按热度按时间xwbd5t1u1#
关于Microsoft位图,一个鲜为人知的事实是每行都填充了4字节的偶数倍。很自然地假设一行紧接着下一行,但每行可能有1到3字节的填充,这会使对齐方式出错。您会看到颜色不正确,或者每行从正确的位置移动时图像歪斜。
如果您的像素都是4字节(RGBA)或图像宽度是4的倍数(比随机概率更常见),则每行已经是4字节的倍数,您不会注意到问题。