画像データの拡大、縮小

解決


びっとまっぷ  2005-08-27 01:04:39  No: 91818

開発環境はWindows2K pro  VB.NET 2003

bmpやjpeg形式の画像を読み込んで、
拡大・縮小をしてファイルに保存する方法でありますでしょうか。
pictureboxに画像を読み込んでも
サイズが変わりません。(表示は変わりますが・・)

イメージ的には、
ペイントツールの変形メニューの伸縮です。

よろしくお願いします。


ガッ  2005-08-27 01:40:25  No: 91819

C#で書いてみました。

public static void SaveImage(string filename, double wzoom, double hzoom)
{
    try
    {
        Image im = Image.FromFile(filename);
        int neww = (int)(im.Width * wzoom), newh = (int)(im.Height * hzoom);
        Bitmap b = new Bitmap(neww, newh);
        Graphics g = Graphics.FromImage(b);
        g.DrawImage(im, new Rectangle(0, 0, neww, newh));
        b.Save(filename + "renew.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
    }
    catch (Exception e)
    {
    }
}


びっとまっぷ  2005-08-27 02:11:39  No: 91820

ありがとうございます。
上のソースをVBに書き換えたところ
出来ました。

ただ、出来たビットマップのファイルの形式が
24bitRGBから32bitαRGBに変わってしまいました。
(ファイルのプロパティを見ると、
「Windows 3.x ビットマップ」から「Windows or OS/2 bitmap」へ)

24bitRGB形式でファイル出力させたいのですが
可能でしょうか。


ガッ  2005-08-27 02:29:09  No: 91821

…私は.NETを良く知らないので、あやふやな回答しか出来ませんが、
ImageFormatを変えれば出来るかもしれません。

※最後の手段としてビットマップファイルを自力で作れば可能ですが、
  その手段も、変換するフリーのコンバータがあれば一発ですね…


びっとまっぷ  2005-08-27 03:59:25  No: 91822

ImageFormatというより
PixelFormatをFormat24bppRgbにセットした
Bitmapのインスタンスを用意して
それにファイルを読み込ませたんですが
うまくいきませんでした。

結局、
4バイトずつαRGBデータ(メモリ上ではBGRα)を
RGBの順番に変更してRGBに変更してみます。

ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加