6

EXIF データを失うことなく、.NET を使用して画像のサイズを変更する最良の方法は何ですか? .NET 2 System.Drawing.* クラス、WPF クラス、またはオープンソース ライブラリを使用しても問題ありません。

今のところこれを処理する唯一の簡単な方法は、Graphics.FromImage (.NET 2) を使用してサイズ変更を実行し、OpenSource ライブラリを使用して手動で EXIF データを書き直すことです (各データを 1 つずつ)。 .

4

2 に答える 2

3

サイズを変更する前にEXIFデータを抽出してからEXIFデータを再挿入するというあなたの提案は、まともな解決策のようです.

EXIF データは、JPEG や TIFF などの形式に対してのみ定義できます。サイズ変更のためにそのような画像を Graphics オブジェクトにロードすると、基本的に画像が通常のビットマップに変換されます。したがって、EXIF データが失われます。

C# を使用した EXIF 抽出に関する少し関連するスレッドはこちら

于 2009-08-05T01:32:55.550 に答える
2

私は Magick .NET を使用し、2 つの拡張メソッドを作成しました。

    public static byte[] ToByteArray(this Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }

    public static Image AttachMetadData(this Image imgModified, Image imgOriginal)
    {
        using (MagickImage imgMeta = new MagickImage(imgOriginal.ToByteArray()))
        using (MagickImage imgModi = new MagickImage(imgModified.ToByteArray()))
        {
            foreach (var profileName in imgMeta.ProfileNames)
            {
                imgModi.AddProfile(imgMeta.GetProfile(profileName));
            }
            imgModified = imgModi.ToImage();
        }
        return imgModified;
    }
于 2014-11-03T17:32:10.887 に答える