我使用CreateDIBSection创建了一个位图并指定了.biWidth = 100; .biHeight = 100这样的伪代码:更改位图大小而不创建新的位图
pBitmapInfo->bmiHeader.biWidth = 100;
pBitmapInfo->bmiHeader.biHeight = 100;
....
CreateDIBSection(DibDC, pBitmapInfo, DIB_RGB_COLORS, 0, 0, 0);
后,我想重用此位图,只是改变了位图尺寸大小为300x100(和可以清除旧的图像,因为我并不需要它了)。很多人说我需要用新的尺寸创建一个新的位图并删除旧的位图。但我预计在某些方面我们可以重新使用旧的位图。我不想重新创建一个新的位图,因为它会导致性能下降,而我需要重复执行多次。那么有什么方法可以在不重新创建新位图的情况下更改位图大小?
如果您需要两种尺寸的位图,我会创建两个位图。调整大小可能看起来不好。您不需要重复创建任何内容,只需在需要时让每个位图“存活”即可。 –
你在使用哪种环境?当然不是所有的VB/C/C++/Delphi ....我建议删除所有这些标签,并简单地添加'WinAPI'。 – Johan
与字符串类似,位图是不可变的。一旦创建,它们就不能被修改。但是,您可以执行的操作是仅显示部分位图,或者使用“StretchBlt”对其进行拉伸。 – IInspectable