您可以使用FreeImage删除元数据,但是,对于jpeg,图像将在保存时重新压缩,并伴随相关的图像质量损失 .
' by default, FreeImage will have copied the metadata to the new image
If Not (args.CopyMetadata) Then
Dim tag As New FreeImageAPI.FITAG
FreeImage.SetMetadata(FREE_IMAGE_MDMODEL.FIMD_COMMENTS, dib2, Nothing, tag)
FreeImage.SetMetadata(FREE_IMAGE_MDMODEL.FIMD_IPTC, dib2, Nothing, tag)
FreeImage.SetMetadata(FREE_IMAGE_MDMODEL.FIMD_XMP, dib2, Nothing, tag)
' value of 11 is for FIMD_EXIF_RAW
FreeImage.SetMetadata(DirectCast(11, FreeImageAPI.FREE_IMAGE_MDMODEL), dib2, Nothing, tag)
FreeImage.DeleteTag(tag)
End If
If File.Exists(targetFile) Then
File.Delete(targetFile)
End If
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib2, targetFile, FREE_IMAGE_SAVE_FLAGS.JPEG_OPTIMIZE Or FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYGOOD)
如果要从FIF_JPEG以外的文件类型中删除元数据,则应查阅文档以查看哪些文件是可写的 .
要在不影响图像的情况下删除元数据,您需要查看jpeg文件交换格式并仅提取所需的数据 . 如果您碰巧安装了Photoshop 6安装CD(6而不是CS6),则在安装PS6 SDK时可以获得包含相关信息的文档 .