什么是在.NET中调整图像大小的最佳方法,而不会丢失EXIF数据?我可以使用.NET 2 System.Drawing.*类、WPF类或开源库。目前我发现唯一简单的处理方式是使用Graphics.FromImage (.NET 2)进行调整大小,并使用开源库手动重新编写每个数据的EXIF数据(一个一个地)。
我使用Magick .NET并创建了两个扩展方法:
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;
}