解決済みの質問

質問No.1903569
困ってます
困ってます
お気に入り投稿に追加する (0人が追加しました)
回答数3
閲覧数3275
画像の拡大・縮小
読み込んだ画像を1.5倍に拡大、2/3倍に縮小したいのですが、C言語でそのようなことは可能なのですか?また、できるとしたら、どのように行えばいいのでしょうか?教えてくださいm(_ _)m
投稿日時 - 2006-01-18 00:14:54

質問者が選んだベストアンサー

回答No.3
座標系だけでしたら処理は単純です。
単に倍率をかけてあげればよいだけです。

具体的な計算式は、
(1.5倍の例)
 Image( x*1.5, y*1.5 ) = Image( x, y )
ということです。

これだけでは多分わからないですね^_^;
以下にプログラムを書きます。

----------------------------------------------------------------

void main()
{
 unsinged char Image[ 16 ][ 16 ]; // 読み込んだ画像の格納場所
 unsinged char Image2[ 24 ][ 24 ]; // 拡大した画像の格納場所
 double zoom = 1.5;
 int x, y;
 int i, j;

/*
  画像の読み込み処理
*/

 for(x=0; x<16; x++)
 {
  for(y=0; y<16; y++)
  {
   // 拡大した時に隙間が空くので、その箇所を補完する
   for(i=0; (double)i<zoom; i++)
   {
    for(j=0; (double)j<zoom; j++)
    {
     Image2[ (int)(x*zoom)+i ][ (int)(y*zoom)+j ] = Image[ x ][ y ];
    }
   }
  }
 }
}

----------------------------------------------------------------

これでImage2に1.5倍した画像が格納されるはずです。
(注:Image2の配列のサイズは任意に決めています)

理解できたでしょうか。

画像の拡大縮小に関しては、まだ多くの手法が存在しますので、
調べてみると面白いかもしれませんよ(^_^)
投稿日時 - 2006-01-21 03:07:02
この回答を支持する
(現在0人が支持しています)
この質問は役に立ちましたか?
0人が「このQ&Aが役に立った」と投票しています

ベストアンサー以外の回答 (2)

回答No.2
>できるとしたら、どのように行えばいいのでしょうか?

言語であればC/C++/C#、画像であればbmp/gif/jpgなどで手段はいろいろ違ってくると思います。
投稿日時 - 2006-01-19 00:36:30
この回答を支持する
(現在0人が支持しています)
回答No.1
可能です。

方法としては、
座標系だけ拡大縮小する方法(単純計算)
色を補完して拡大縮小する方法
など多くの方法がありますが、

どの方法をご希望でしょうか?

また実際に、どのようにプログラムを書いているかも添えてくださると、
より詳しい回答を書くことができまよ^_^;
投稿日時 - 2006-01-18 00:59:55
この回答を支持する
(現在0人が支持しています)
補足
ご回答ありがとうございます!!座標系だけ拡大縮小する方法を教えてもらいたいのですが・・・
投稿日時 - 2006-01-21 01:43:53
別のキーワードで再検索する
もっと聞いてみる

関連するQ&A

回答募集中

この他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-

OKWaveのおすすめ情報

特集

同じカテゴリの人気Q&Aランキング

カテゴリ
C・C++
-PR-

ピックアップ

ノウハウ共有サイト

-PR-
-PR-