開発環境はWindows2K pro VB.NET 2003
bmpやjpeg形式の画像を読み込んで、
拡大・縮小をしてファイルに保存する方法でありますでしょうか。
pictureboxに画像を読み込んでも
サイズが変わりません。(表示は変わりますが・・)
イメージ的には、
ペイントツールの変形メニューの伸縮です。
よろしくお願いします。
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)
{
}
}
ありがとうございます。
上のソースをVBに書き換えたところ
出来ました。
ただ、出来たビットマップのファイルの形式が
24bitRGBから32bitαRGBに変わってしまいました。
(ファイルのプロパティを見ると、
「Windows 3.x ビットマップ」から「Windows or OS/2 bitmap」へ)
24bitRGB形式でファイル出力させたいのですが
可能でしょうか。
…私は.NETを良く知らないので、あやふやな回答しか出来ませんが、
ImageFormatを変えれば出来るかもしれません。
※最後の手段としてビットマップファイルを自力で作れば可能ですが、
その手段も、変換するフリーのコンバータがあれば一発ですね…
ImageFormatというより
PixelFormatをFormat24bppRgbにセットした
Bitmapのインスタンスを用意して
それにファイルを読み込ませたんですが
うまくいきませんでした。
結局、
4バイトずつαRGBデータ(メモリ上ではBGRα)を
RGBの順番に変更してRGBに変更してみます。
ありがとうございます。
ツイート | ![]() |