| 
                 分類:[C++/CLI] 
 
 Visual Studio 2010
WindowsXP SP3
質問させてください。
下記手順にて画像の「StretchDIBits(MFC)」による
拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。
[C++/CLI]側
 アルファ付画像を読み込む(Bitmap/Format32bppArgb)
 「Bitmap」から「BitmapData」を取得し、「BitmapData」の「Scan0」を取り出す。
 「Scan0」をMFC側に渡す。
[MFC側]
 伸縮モードの変更「SetStretchBltMode(copyDC, HALFTONE)」
 「Scan0」を「StretchDIBits」を使用して拡大
		srcBMP.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
		srcBMP.bmiHeader.biBitCount = 32;
		srcBMP.bmiHeader.biPlanes = 1;
		srcBMP.bmiHeader.biWidth = Width;
		srcBMP.bmiHeader.biHeight = Height;
		StretchDIBits(
			copyDC, 0, 0, ZoomWidth, ZoomHeight,
			0, 0, Width, Height,
			srcScan0, &srcBMP, DIB_RGB_COLORS,
			SRCCOPY
		);
 「GetDIBits」を使用して拡大した画像配列を取り出し
		dstBMP.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
		dstBMP.bmiHeader.biBitCount = 32;
		dstBMP.bmiHeader.biPlanes = 1;
		dstBMP.bmiHeader.biWidth = ZoomWidth;
		dstBMP.bmiHeader.biHeight = ZoomHeight;
		GetDIBits(
			copyDC, dstHBMP, 0, ZoomHeight,
			dstScan0,
			&dstBMP, DIB_RGB_COLORS);
 「dstScan0」のRGBは設定されていますがアルファ値が
 全ピクセル「0」になってしまいます。
 
以上、よろしくお願い致します。
 
  |