ああ、私は言及するのを忘れました。 Bitmap.SetResolution
はアスペクト比の問題に役立つ場合があります。以下のものはサイズ変更についてです。
チェックアウトThis page。サイズ変更の2つのメカニズムについて説明します。あなたの事例では、双線形フィルタリングは実際には良いアイデアだと思っています。以下は
はあなたが望むものでなければなりません(上記のリンク先のページから、クリスチャン・グラウスによって書かれた)ナイーブサイズ変更アルゴリズムのコピーです。
public static Bitmap Resize(Bitmap b, int nWidth, int nHeight)
{
Bitmap bTemp = (Bitmap)b.Clone();
b = new Bitmap(nWidth, nHeight, bTemp.PixelFormat);
double nXFactor = (double)bTemp.Width/(double)nWidth;
double nYFactor = (double)bTemp.Height/(double)nHeight;
for (int x = 0; x < b.Width; ++x)
for (int y = 0; y < b.Height; ++y)
b.SetPixel(x, y, bTemp.GetPixel((int)(Math.Floor(x * nXFactor)),
(int)(Math.Floor(y * nYFactor))));
return b;
}
代替メカニズムはthisようGetThumbNailImage
機能を悪用することです。そのコードはアスペクト比を維持しますが、それを行うコードを削除するのは簡単です。
あなたの先生は、私のヒーローです! –
誰もこのコードのJava版を持っていますか? – gtiwari333