
印刷イベントハンドラーにイメージデータを渡す方法が分りません
印刷イベントハンドラーにイメージデータを渡す方法が分りません
写真を読込み、それを修整した後に印刷するC#プログラムを作っています
イメージを印刷イベントハンドラに渡したいのですが、その方法が分りません
安直にファイル渡しをしていますがブザマそのものです
誰かにソースを見られたら笑われてしまいます
一般的でカッコ良い手段を教えてください
private void button1_Click(object sender, EventArgs e)
{
Image img1;
img1 = Image.FromFile("f:\\写真原簿.bmp"); //オリジナルを読込み
この辺りで写真を修整しています
img1.Save("f:\\写真修正.bmp"); //修正写真をセーブ
this.printDocument1.Print();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Image img2;
img2 = Image.FromFile("f:\\写真修正.bmp"); //修正写真を再読込み
e.Graphics.DrawImage(img2, 100, 100); //イメージを出力
e.HasMorePages = false; //印刷終了
}
投稿日時 - 2010-09-10 11:19:39
イメージデータを関数内のローカル変数じゃなく、クラスのメンバ変数に持たせればいちいちファイルを保存、再読込する必要はありません。
修正処理も印刷処理も同じFormクラス内の処理なら、Formのメンバ変数として、
private Image img = null;
このimgに対してオリジナル画像の読込、修正をかけ、そのまま印刷処理に渡せます。
別のクラスにわかれているなら、共通データ用のクラスでも作っておきます。
class ComData
{
static public Image img = null;
}
で、アクセスするときはComData.imgに対して読込、修正、印刷を行ないます。
投稿日時 - 2010-09-10 22:58:42
ありがとうございます
(1)イメージデータをクラスのメンバ変数に持たす
(2)共通データ用のクラスでも作っておく
の双方の試行を行い、両者とも良好な結果を得ることが出来ました
ご指導に心から感謝申しあげます
ありがとうございました
なお実際には将来の拡張性を考慮して(2)の方法で行きたいと思っております
今後とも宜しくご教授頂きたいと存知ます
投稿日時 - 2010-09-12 13:38:43
このQ&Aは役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています
回答(1)