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

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

C# と VB.NET の入門サイト

Re[2]: 画像から画像を作成する方法


(過去ログ 101 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■60560 / inTopicNo.1)  画像から画像を作成する方法
  
□投稿者/ B/B (5回)-(2011/07/08(Fri) 14:49:51)

分類:[C#] 

たとえば画像Aを縦10横5に並べた画像Bを作り、メモリ上に保持していつでも画面上に描画できるようにしたいのですが
その画像Bを作成する方法を教えてほしいのです。

開発ツールはVisualStudio2010、言語はC#で行っております。

とりあえず、画像Bをbitmapで作成し、画像Aを読み込んでそれをDrawImageで画像Bに書き込むという機能を作成しましたが、
縦横の数が増えるほど処理に時間がかかります。
最終的には100x100くらいの規模のものを処理するつもりなので、もっと早く処理できる別の方法や改善方法を教えていただきたいです。

やってることとしては以下のような感じです。

Image A = Image.FromFile("画像A.bmp");
Bitmap B = new Bitmap(A.Width * 10, A.Height * 5);
Graphics gB = Graphics.FromImage(B);

for (int x = 0; x < 10; x++)
 for (int y = 0; y < 5; y++)
  gB.DrawImage(A, A.Width*x, A.Height*y, A.Width, A.Height);
引用返信 編集キー/
■60561 / inTopicNo.2)  Re[1]: 画像から画像を作成する方法
□投稿者/ てんや (1回)-(2011/07/08(Fri) 15:39:23)
No60560 (B/B さん) に返信

画像サイズにもよると思いますが、GraphicsのDrawImageは遅いと思います。
BitmapDataを使って画像Bのバイト配列にビットマップデータを直接書き込んでみるのはいかがでしょう。
引用返信 編集キー/
■60642 / inTopicNo.3)  Re[2]: 画像から画像を作成する方法
□投稿者/ B/B (6回)-(2011/07/13(Wed) 11:41:16)
No60561 (てんや さん) に返信

てんやさんありがとうございます。
以下のサイトを参考にしてBitmapDataを使用することで、劇的に処理速度の改善が出来ました。

http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleBitmapPlus.html

今後も画像処理をするときはこの方法を使っていきたいと思います。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -