我发现一个 GitHub 问题,显示如何通过将其 ExifProfile 设置为 null 来删除图像的 exif 数据:
SixLabors.ImageSharp.Image image = Image.Load(imagePath);
//remove exif
image.Metadata.ExifProfile = null;
//resize
image.Mutate(x => x.Resize(width, height));
//save
SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder encoder = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder();
encoder.Quality = 30;
image.Save(thumbnailPath, encoder);
...但它似乎对我不起作用——保存的 jpeg 大小相同,当我的操作系统检查时,它们会向我显示相机的所有 EXIF 设置。当我对从另一个实用程序创建的图像进行相同的检查时,操作系统不会向我显示所有 EXIF 设置......所以我倾向于说这种 ImageSharp 技术没有正确地擦除它们。
任何想法?
https://github.com/SixLabors/ImageSharp/issues/400 https://github.com/SixLabors/ImageSharp/issues/400
结果有两种不同类型的元数据 - EXIF 和 XMP。必须将两个对象设置为 null 才能将它们全部删除:
image.Metadata.ExifProfile = null;
image.Metadata.XmpProfile = null;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)