0

色深度 (GIF 変換) を減らし、ビットマップから解像度を 600 ピクセルに設定するメソッドを作成します。

色深度の変換は正常に機能しますが、解像度セットが機能していません。

<script runat="server" language="C#">
    public static void Convert(Bitmap oldbmp, String path)
    {
        System.Drawing.Bitmap bm8Bit;
        using (MemoryStream ms = new MemoryStream())
        {
            oldbmp.Save(ms, ImageFormat.Gif);
            ms.Position = 0;            
            bm8Bit = (System.Drawing.Bitmap) System.Drawing.Image.FromStream(ms);
            bm8Bit.SetResolution(600, 600);
            bm8Bit.Save(path, System.Drawing.Imaging.ImageFormat.Bmp);
            return;
        }
    }
</script>
4

2 に答える 2

1

独自のソリューションを作成しようとするのは常に良いことですが、実装が簡単で非常にうまく機能するライブラリが利用可能です

ここからダウンロードでき、非常に優れたドキュメントもあります。

http://imageresizing.net/download

于 2013-05-29T12:38:13.313 に答える
1

以前に保存されていない新しいビットマップでのみ解像度を設定できると思います。そのため、既存のビットマップがある場合は、それを新しいビットマップ インスタンスにコピーする必要があります。

Bitmap imgCopy = new Bitmap(img);
imgCopy.SetResolution(600.0f,600.0f);

ここを読む: http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx

このメソッドを使用して、新しく作成されたビットマップに目的の解像度を設定します。イメージの解像度を変更しても、物理的なサイズは変わりません。

于 2013-05-29T12:28:15.943 に答える