【GDI+】画像読み込みについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
奥兵

【GDI+】画像読み込みについて

#1

投稿記事 by 奥兵 » 14年前

現在サンプルを見ながらGDI+と格闘しています。

様々なサンプルを参考としつつ、なんとか画像の表示はできました。
ですが描画ごとに読み込みを行なっているので、読み込み関数と描画関数に分け
画像のデータをポインタか構造体を渡す形にしたいと思い、あの手この手でいじってみたのですが全くうまくいきません。
”image”が画像を格納している変数かなにかだということは想像つくのですが、
このimageを関数の外で宣言して読み込み用の関数で画像を読み込み、描画用の関数に渡したいと思っています

コード:

int DrawGraphics(HWND hWnd,HDC hdc){//描画

	Graphics MyGraphics(hdc);	 
	Gdiplus::Image image(L"..\\test.jpg");//←LoadGraphicsに移動させたい 
    MyGraphics.DrawImage( &image, 0, 0 );

return 0;
}
int LoadGraphics(){//画像読み込み
	//Gdiplus::Image image(L"..\\test.jpg");//←ここに移動させたい
return 0;
}
DrawGraphics関数はプロシージャのWM_PAINTで呼び、LoadGraphicsはWM_CREATEで呼んでいます
”image”が画像を格納している変数かなにかだということは想像つくのですが、
このimageを関数の外で宣言してLoadGraphics関数で画像を読み込み、DrawGraphics関数に渡すような感じにしたいのです。
どなたかアドバイスお願いします。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 【GDI+】画像読み込みについて

#2

投稿記事 by ISLe » 14年前

検証してませんがたぶんこういうことですかね。

コード:

Gdiplus::Image *image; // 外部変数
int DrawGraphics(HWND hWnd,HDC hdc){//描画
    Graphics MyGraphics(hdc);    
    MyGraphics.DrawImage( image, 0, 0 );
    return 0;
}
int LoadGraphics(){//画像読み込み
    image = new Gdiplus::Image(L"..\\test.jpg");
    return 0;
}

奥兵

Re: 【GDI+】画像読み込みについて

#3

投稿記事 by 奥兵 » 14年前

夜分に関わらず素早いアドバイスありがとうございます。
早速ご指摘いただいたようにやってみました。
一応コンパイルはできたのですがウィンドウが真っ白で何も表示されません。
もう少し大きな範囲のソースを晒したほうがいいですかね?

tamaneko

Re: 【GDI+】画像読み込みについて

#4

投稿記事 by tamaneko » 14年前

C/C++ど初心者で、さらにGDI+はさっぱり分らないので、あてずっぽうで書きますが
Image::FromFile
Image::FromStream
とかを使うんじゃないですか

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 【GDI+】画像読み込みについて

#5

投稿記事 by softya(ソフト屋) » 14年前

Gdiplus::Image *image; // 外部変数
だと不要になった時のdeleteを書いていませんのでメモリリークだと判断されそうですね。
Gdiplus::Image image; // 外部変数
としておいて私もFromFileメソッドを使ったほうが良いと思います。
そうすればデストラクタで読み込んだ画像も破棄されるはずですので楽ができます。

それとGDI+はC++の文法なのでC++の勉強もおすすめします。

[補足]
あとISLeさんの方法でも動くはずなんで組み込み方が間違っている可能性は十分にあります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

奥兵

Re: 【GDI+】画像読み込みについて

#6

投稿記事 by 奥兵 » 14年前

失礼、遅くなりました。

どうやらというか、やはり私のC++の理解力が圧倒的に不足しているようです^^;
もう少ししっかり勉強してみます、たくさんのアドバイスありがとうございました。 

閉鎖

“C言語何でも質問掲示板” へ戻る