CreateDIBSectionを使用してビットマップを作成し、.biWidth = 100; .biHeight = 100この擬似コードのように:新しいビットマップを作成せずにビットマップサイズを変更する
pBitmapInfo->bmiHeader.biWidth = 100;
pBitmapInfo->bmiHeader.biHeight = 100;
....
CreateDIBSection(DibDC, pBitmapInfo, DIB_RGB_COLORS, 0, 0, 0);
後、私はちょうど300×100にビットマップのサイズを変更し、このビットマップを再利用したい(と私はもうそれを必要としないため、古いイメージをクリアする場合があります)。多くの人は、新しいサイズの新しいビットマップを作成し、古いビットマップを削除する必要があると言います。しかし私は、以前のビットマップを再利用できると期待していました。新しいビットマップを再作成したくないのは、繰り返し実行する必要がある間にパフォーマンスが低下するためです。新しいビットマップを再作成せずにビットマップサイズを変更する方法はありますか?
2つのサイズのビットマップが必要な場合は、2つのビットマップを作成します。サイズ変更はおそらく悪く見えます。何も繰り返し作成する必要はなく、各ビットマップが必要なだけ「生きて」いるようにしてください。 –
あなたはどの環境を使っていますか?確かにVB/C/C++/Delphiのすべてではありません。これらのタグをすべて削除し、単にWinAPIを追加することをお勧めします。 – Johan
文字列と同様に、ビットマップは不変です。作成後、変更することはできません。ただし、ビットマップの一部のみを表示するか、「StretchBlt」を使用してビットマップをストレッチすることができます。 – IInspectable