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

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

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

Re[4]: 画像の接合について


(過去ログ 52 を表示中)

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

■28779 / inTopicNo.1)  画像の接合について
  
□投稿者/ はとまめ (1回)-(2008/12/01(Mon) 00:28:35)

分類:[.NET 全般] 

VB2008.NETで、jpeg画像の接合は可能でしょうか。
たとえば、1a.jpg,1b.jpg,1c,jpg,1d.jpgの4つを、1a,1b
1c,1d
のように4つを接合して1つの画像にする方法を考えています。
いろいろ調べて見たのですが、ヒントになるものが見あたらなく質問させて
頂きました。


引用返信 編集キー/
■28781 / inTopicNo.2)  Re[1]: 画像の接合について
□投稿者/ よねKEN (210回)-(2008/12/01(Mon) 00:40:41)
> VB2008.NETで、jpeg画像の接合は可能でしょうか。

可能/不可能で言えば可能です。

> いろいろ調べて見たのですが、ヒントになるものが見あたらなく質問させて
> 頂きました。

System.Drawing名前空間のGraphicsクラス、Bitmapクラス(Imageクラス)を
組み合わせて使用します。

(1) 1a〜1dを読み込んだBitmapオブジェクトを用意する。
(2) 1a〜1dを合わせたサイズの新しいBitmapオブジェクトを用意する。
(3) Graphics.FromImageメソッドで(2)のBitmapオブジェクトからGraphicsオブジェクトを取得する。
(4) (3)で取得したGraphicsオブジェクトのDrawImage〜な名前のメソッドで(1)で作成した
 4つのBitmapオブジェクトの内容を適切な位置に描画する。

こんな感じの流れで(2)で作成したBitmapオブジェクトを結合された画像イメージにできます。

各クラス、そのクラスが持つメソッドの説明に一通り目を通してみてください。

引用返信 編集キー/
■28792 / inTopicNo.3)  Re[2]: 画像の接合について
□投稿者/ はとまめ (2回)-(2008/12/01(Mon) 10:05:46)
No28781 (よねKEN さん) に返信
よねKENさん

はとまめです

早速のご返答ありがとうございます。
下記のアドバイスもう一度勉強して取り組んでみます。


> System.Drawing名前空間のGraphicsクラス、Bitmapクラス(Imageクラス)を
> 組み合わせて使用します。
>
> (1) 1a〜1dを読み込んだBitmapオブジェクトを用意する。
> (2) 1a〜1dを合わせたサイズの新しいBitmapオブジェクトを用意する。
> (3) Graphics.FromImageメソッドで(2)のBitmapオブジェクトからGraphicsオブジェクトを取得する。
> (4) (3)で取得したGraphicsオブジェクトのDrawImage〜な名前のメソッドで(1)で作成した
>  4つのBitmapオブジェクトの内容を適切な位置に描画する。
>
> こんな感じの流れで(2)で作成したBitmapオブジェクトを結合された画像イメージにできます。
>
> 各クラス、そのクラスが持つメソッドの説明に一通り目を通してみてください。
>
引用返信 編集キー/
■28800 / inTopicNo.4)  Re[3]: 画像の接合について
□投稿者/ dolan (11回)-(2008/12/01(Mon) 12:56:28)
No28792 (はとまめ さん) に返信
> ■No28781 (よねKEN さん) に返信
> よねKENさん
>
> はとまめです
>
> 早速のご返答ありがとうございます。
> 下記のアドバイスもう一度勉強して取り組んでみます。
>
>
>>System.Drawing名前空間のGraphicsクラス、Bitmapクラス(Imageクラス)を
>>組み合わせて使用します。
>>
>>(1) 1a〜1dを読み込んだBitmapオブジェクトを用意する。
>>(2) 1a〜1dを合わせたサイズの新しいBitmapオブジェクトを用意する。
>>(3) Graphics.FromImageメソッドで(2)のBitmapオブジェクトからGraphicsオブジェクトを取得する。
>>(4) (3)で取得したGraphicsオブジェクトのDrawImage〜な名前のメソッドで(1)で作成した
>> 4つのBitmapオブジェクトの内容を適切な位置に描画する。
>>
>>こんな感じの流れで(2)で作成したBitmapオブジェクトを結合された画像イメージにできます。
>>
>>各クラス、そのクラスが持つメソッドの説明に一通り目を通してみてください。
>>
引用返信 編集キー/
■28804 / inTopicNo.5)  Re[1]: 画像の接合について
□投稿者/ IIJIMAS (5回)-(2008/12/01(Mon) 14:32:09)
No28779 (はとまめ さん) に返信
> VB2008.NETで、jpeg画像の接合は可能でしょうか。
> たとえば、1a.jpg,1b.jpg,1c,jpg,1d.jpgの4つを、1a,1b
> 1c,1d
> のように4つを接合して1つの画像にする方法を考えています。
> いろいろ調べて見たのですが、ヒントになるものが見あたらなく質問させて
> 頂きました。
>
>

要件の細かい部分は違うかと思いますが、昔画像に画像を重ねるコードを別の掲示板で回答したことがありました。
「C# 画像イメージに画像イメージを重ねる方法 」[MSDNフォーラム]
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1824159&SiteID=7
参考になりませんか。
引用返信 編集キー/
■28806 / inTopicNo.6)  Re[1]: 画像の接合について
□投稿者/ .SHO (256回)-(2008/12/01(Mon) 16:02:56)
No28779 (はとまめ さん) に返信

> たとえば、1a.jpg,1b.jpg,1c,jpg,1d.jpgの4つを、1a,1b
>                                               1c,1d
> のように4つを接合して1つの画像にする方法を考えています。
> いろいろ調べて見たのですが、ヒントになるものが見あたらなく質問させて
> 頂きました。

文章での説明は面倒なので作りました。

void copy( Bitmap dst, Bitmap src, int xoff, int yoff ) {
    for ( int y=0; y<src.Height; y++ )
        for ( int x=0; x<src.Width; x++ )
            dst.SetPixel( x + xoff, y + yoff, src.GetPixel( x, y ) );
}

void chain() {
    Bitmap b1a = new Bitmap( "1a.jpg" );
    Bitmap b1b = new Bitmap( "1b.jpg" );
    Bitmap b1c = new Bitmap( "1c.jpg" );
    Bitmap b1d = new Bitmap( "1d.jpg" );
    Bitmap bmp = new Bitmap(
        b1a.Width  + b1b.Width,
        b1a.Height + b1c.Height,
        PixelFormat.Format24bppRgb
    );
    copy( bmp, b1a, 0        , 0          );
    copy( bmp, b1b, b1a.Width, 0          );
    copy( bmp, b1c, 0        , b1a.Height );
    copy( bmp, b1d, b1a.Width, b1a.Height );
}

引用返信 編集キー/
■28808 / inTopicNo.7)  Re[2]: 画像の接合について
□投稿者/ Azulean (235回)-(2008/12/01(Mon) 16:42:49)
個々の画像サイズが気になります。
メモリ空間の限界があるので、あまり大きな画像の場合、方針自体見直すこともあり得ます。
引用返信 編集キー/
■28812 / inTopicNo.8)  Re[2]: 画像の接合について
□投稿者/ 倉田 有大 (371回)-(2008/12/01(Mon) 17:01:49)
No28806 (.SHO さん) に返信
> ■No28779 (はとまめ さん) に返信
>
>>たとえば、1a.jpg,1b.jpg,1c,jpg,1d.jpgの4つを、1a,1b
>> 1c,1d
>>のように4つを接合して1つの画像にする方法を考えています。
>>いろいろ調べて見たのですが、ヒントになるものが見あたらなく質問させて
>>頂きました。
>
> 文章での説明は面倒なので作りました。
>
> void copy( Bitmap dst, Bitmap src, int xoff, int yoff ) {
> for ( int y=0; y<src.Height; y++ )
> for ( int x=0; x<src.Width; x++ )
> dst.SetPixel( x + xoff, y + yoff, src.GetPixel( x, y ) );
> }
>
> void chain() {
> Bitmap b1a = new Bitmap( "1a.jpg" );
> Bitmap b1b = new Bitmap( "1b.jpg" );
> Bitmap b1c = new Bitmap( "1c.jpg" );
> Bitmap b1d = new Bitmap( "1d.jpg" );
> Bitmap bmp = new Bitmap(
> b1a.Width + b1b.Width,
> b1a.Height + b1c.Height,
> PixelFormat.Format24bppRgb
> );
> copy( bmp, b1a, 0 , 0 );
> copy( bmp, b1b, b1a.Width, 0 );
> copy( bmp, b1c, 0 , b1a.Height );
> copy( bmp, b1d, b1a.Width, b1a.Height );
> }
>

drawimageじゃなくsetpixelだと、処理がだいぶ重くなりませんか?(そでもない?
引用返信 編集キー/
■28813 / inTopicNo.9)  Re[3]: 画像の接合について
□投稿者/ .SHO (259回)-(2008/12/01(Mon) 17:05:02)
No28812 (倉田 有大 さん) に返信

> drawimageじゃなくsetpixelだと、処理がだいぶ重くなりませんか?(そでもない?

なります。

自分は、16×16の画像4つで確認したので、その程度なら全然問題なく実用に耐えると
思いますが、画像の大きさによっては、重くなりますね。

とりあえず、GetPixel、SetPixel が基本かな?と思ったもので。
引用返信 編集キー/
■28816 / inTopicNo.10)  Re[4]: 画像の接合について
□投稿者/ .SHO (260回)-(2008/12/01(Mon) 17:44:29)
DrawImage バージョンです。
個々の画像サイズが気になる場合は1個づつ処理すればいいです。

void chain() {
    Bitmap b1a = new Bitmap( "1a.jpg" );
    Bitmap b1b = new Bitmap( "1b.jpg" );
    Bitmap b1c = new Bitmap( "1c.jpg" );
    Bitmap b1d = new Bitmap( "1d.jpg" );
    Image bmp = new Bitmap(
        b1a.Width  + b1b.Width,
        b1a.Height + b1c.Height,
        PixelFormat.Format24bppRgb
    );
    Graphics g = Graphics.FromImage( bmp );
    g.DrawImage( b1a, 0        , 0          );
    g.DrawImage( b1b, b1a.Width, 0          );
    g.DrawImage( b1c, 0        , b1a.Height );
    g.DrawImage( b1d, b1a.Width, b1a.Height );
}

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -