windows 如何读取正确的像素从窗口剪贴板复制图像?

beq87vna  于 2023-02-13  发布在  Windows
关注(0)|答案(1)|浏览(95)

我用这个

GetClipboardData(CF_DIB);

我将其视为位图信息标题并考虑
1.双向宽度
1.双向高度
1.比特数24与32
1.如果biCompression是BI_BITFIELDS,则i跳过像素数据的前3 * 4字节。
大多数时候,当我复制一个图像,我可以从它的像素数据刚刚好。但当从某些应用程序,如电报复制,有时颜色是混乱的,有时图像是歪斜的,各种疯狂的文物发生时,试图查看剪贴板图像。我没有看到任何特殊的位图信息头中的这些图像,我渲染不正确。什么可能是我可能忘记处理?

xwbd5t1u

xwbd5t1u1#

关于Microsoft位图,一个鲜为人知的事实是每行都填充了4字节的偶数倍。很自然地假设一行紧接着下一行,但每行可能有1到3字节的填充,这会使对齐方式出错。您会看到颜色不正确,或者每行从正确的位置移动时图像歪斜。
如果您的像素都是4字节(RGBA)或图像宽度是4的倍数(比随机概率更常见),则每行已经是4字节的倍数,您不会注意到问题。

相关问题