.net-core - 如何使用 ImageSharp 清除图像的 EXIF 数据?

标签 .net-core exif imagesharp

我发现了一个 GitHub 问题,展示了如何通过将图像的 ExifProfile 设置为空来删除图像的 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

最佳答案

原来有两种不同类型的元数据 - EXIF 和 XMP。有必要将两个对象都设置为 null 以将它们全部删除:

image.Metadata.ExifProfile = null;
image.Metadata.XmpProfile = null;

关于.net-core - 如何使用 ImageSharp 清除图像的 EXIF 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71095620/

相关文章:

javascript - 有javascript机制修改Image的EXIF元数据信息吗?

c# - 如何合并两张图片?

asp.net-core-mvc - 有没有办法使用 ImageSharp 验证图像的透明度?

c# - 使用 .NET Core 应用程序优雅地处理 AWS ECS 停止任务

.net-core - 添加 netstandard1.6.1 引用时 netcoreapp1.1 出错

asp.net-core-mvc - AddEntityFrameworkStores 只能使用派生自 .NET Core 2.0 中的 IdentityRole 的角色调用

F# 使用通用参数调用 .Net 函数 - 无法编译

.net - 使用 TFS 代理将生成服务器配置为具有 .NET Core 2.1 和 .NET Core 3.1

javascript - 如何从 Canvas 中加载的图像中提取图像方向信息

javascript - 无法使用 loadImage.parseMetaData 获取 EXIF 信息