C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.56431 の関連記事表示

<< 0 >>
■56431  アルファ付画像の「StretchDIBits」による拡大
□投稿者/ こういち -(2011/01/13(Thu) 18:48:18)

    分類:[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」になってしまいます。

     
    以上、よろしくお願い致します。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56445  Re[1]: アルファ付画像の「StretchDIBits」による拡大
□投稿者/ aetos -(2011/01/14(Fri) 01:58:39)
    No56431 (こういち さん) に返信
    > Visual Studio 2010
    > WindowsXP SP3
    >
    > 質問させてください。
    >
    > 下記手順にて画像の「StretchDIBits(MFC)」による
    > 拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
    > 「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。

    代わりに AlphaBlend 関数を使ってみてはいかがでしょう。
記事No.56431 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56482  Re[2]: アルファ付画像の「StretchDIBits」による拡大
□投稿者/ こういち -(2011/01/14(Fri) 22:37:09)
    No56445 (aetos さん) に返信
    > ■No56431 (こういち さん) に返信
    >>Visual Studio 2010
    >>WindowsXP SP3
    >>
    >>質問させてください。
    >>
    >>下記手順にて画像の「StretchDIBits(MFC)」による
    >>拡大処理を行ったところアルファ値が全ピクセル0になってしまいました。
    >>「StretchDIBits」にてアルファ値の画像を拡大することは可能でしょうか。
    >
    > 代わりに AlphaBlend 関数を使ってみてはいかがでしょう。

    お返事が遅くなりまして申し訳ありません。
    「AlphaBlend 関数」を使用して、うまくいきました。
    ありがとうございました。
記事No.56431 のレス / END /過去ログ94より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -