アプリ版:「スタンプのみでお礼する」機能のリリースについて

読み込んだ画像を1.5倍に拡大、2/3倍に縮小したいのですが、C言語でそのようなことは可能なのですか?また、できるとしたら、どのように行えばいいのでしょうか?教えてくださいm(_ _)m

A 回答 (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の配列のサイズは任意に決めています)

理解できたでしょうか。

画像の拡大縮小に関しては、まだ多くの手法が存在しますので、
調べてみると面白いかもしれませんよ(^_^)
    • good
    • 0

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



言語であればC/C++/C#、画像であればbmp/gif/jpgなどで手段はいろいろ違ってくると思います。
    • good
    • 0

可能です。



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

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

また実際に、どのようにプログラムを書いているかも添えてくださると、
より詳しい回答を書くことができまよ^_^;

この回答への補足

ご回答ありがとうございます!!座標系だけ拡大縮小する方法を教えてもらいたいのですが・・・

補足日時:2006/01/21 01:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています