8

デジタル カメラから取り出されたばかりの画像は、多くの場合、サイズが 2 ~ 3 MB を超えているため、電子メールやその他の方法で転送するのは困難です。これには、画像のサイズを変更する必要があります (高さや幅ではなく、ファイル サイズに関して)。画像のサイズ変更機能を提供する MS ペイントに非常に似ています。私は画像ファイルの理論について十分な教育を受けていません。誰かが次の情報源を教えてくれれば幸いです。

  • 画像理論 (さまざまな画像形式が jpeg、png、tiff などでどのように機能するか)。

  • サイズを変更すると、画像のシャープネスがどのように失われますか? いくつかありますか

  • これを行うために利用できる無料の .Net (私は 4.0 を使用しています) ライブラリはありますか? そうでない場合、com の相互運用性を使用して任意のライブラリを使用できますか?

どうもありがとう、

4

3 に答える 3

40

画像のサイズ変更は、機能が.NETFrameworkに直接組み込まれていることです。いくつかの異なるアプローチがあります:

  • GDI +
  • WIC
  • WPF

これらの違いをカバーする素敵なブログ投稿があります。

GDI+の例を次に示します。

public void Resize(string imageFile, string outputFile, double scaleFactor)
{
    using (var srcImage = Image.FromFile(imageFile))
    {
        var newWidth = (int)(srcImage.Width * scaleFactor);
        var newHeight = (int)(srcImage.Height * scaleFactor);
        using (var newImage = new Bitmap(newWidth, newHeight))
        using (var graphics = Graphics.FromImage(newImage))
        {
            graphics.SmoothingMode = SmoothingMode.AntiAlias;
            graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
            graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
            graphics.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
            newImage.Save(outputFile);
        }
    }
}
于 2012-06-21T12:25:06.500 に答える
2

Imageresizerはうまく機能します。 http://imageresizing.net/

于 2012-06-21T12:25:21.443 に答える