あ、言い忘れました。 Bitmap.SetResolution
アスペクト比の問題に役立つ場合があります。以下のものはサイズ変更に関するものです。
このページをご覧ください。サイズ変更の 2 つのメカニズムについて説明します。あなたの場合、バイリニアフィルタリングは実際には悪い考えだと思います。おそらく、素敵でモノクロにしたいからです。
以下は、単純なサイズ変更アルゴリズム (上記のリンク先のページから Christian Graus によって作成されたもの) のコピーです。
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;
}
別のメカニズムは、このGetThumbNailImage
ように関数を悪用することです。そのコードはアスペクト比を維持しますが、それを行うコードを削除するのは簡単なはずです。