我使用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