サンプル集  >  VC  >  JPEGをビットマップに変換
JPEGをビットマップに変換
2013/12/12

CImageクラスを使ってJPEGをビットマップに変換します。

◆環境
OS Windows 7 Professional Service Pack 1
VC Microsoft Visual C++ 2005 77972-235-2482122-41682

[ファイル]-[新規作成]-[プロジェクト]を選択します。

「プロジェクトの種類」欄で[Visual C++]-[MFC]を選択し、[MFCアプリケーション]を選択します。 「プロジェクト名」は「JPGtoBMP」にします。

「次へ」でウィザードを進めて行き、途中の「アプリケーションの種類」で[ダイアログベース]を選択し「完了」を押します。

「リソース ビュー」で[JPGtoBMP]-[JPGtoBMP.rc]-[Dialog]-[IDD_JPGTOBMP_DIALOG]をダブルクリックしダイアログの編集を開きます。

ダイアログ上の「OK」ボタンをダブルクリックしプログラムの編集を開きます。

CImage.jpgファイルを読み込み、CImage.bmpファイルに書き出すようにします。 atlimage.hを追加でインクルードしました。

JPGtoBMPDlg.cpp (変更箇所のみ)
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
#include <atlimage.h>

void CJPGtoBMPDlg::OnBnClickedOk()
{
    // TODO: ここにコントロール通知ハンドラ コードを追加します。
    HRESULT ret;
    CImage  img;

    // JPEGファイルを読み込み
    ret = img.Load( L"CImage.jpg" );
    if ( FAILED( ret ) )
    {
        MessageBox( L"Failed: CImage.Load" );
        return;
    }

    // Bitmapファイルとして書き込み
    ret = img.Save( L"CImage.bmp"
                  , Gdiplus::ImageFormatBMP
                  );
    if ( FAILED( ret ) )
    {
        MessageBox( L"Failed: CImage.Save" );
        return;
    }

    MessageBox( L"CImage.bmpを保存しました。" );

    OnOK();
}

CImageクラスの Load関数でJPEGファイルを読み込み、Save関数でBitmap形式を指定するだけです。

実行してみます。

「OK」ボタンを押します。

うまく動いたようです。 フォルダを見るとCImage.bmpファイルが作成されていました。

JPEGファイル 10,779byte


Bitmapファイル 85,894byte

JPEGとビットマップの変換がこんなに簡単にできるとは驚きです。

▲ PageTop  ■ Home


Copyright (C) 2013 ymlib.com