当前位置: 首页 > 面试题库 >

Python:从图像中删除Exif信息

南门正祥
2023-03-14
问题内容

为了减小要在网站中使用的图像的大小,我将质量降低到80-85%。这样可以最大程度地减小图像尺寸。

为了进一步减小尺寸而不影响质量,我的朋友指出,相机的原始图像包含大量称为Exif
info的元数据。由于无需为网站中的图像保留此Exif信息,因此我们可以将其删除。这将使尺寸进一步减小3-10 kB。

但是我无法在Python代码中找到合适的库来执行此操作。我已经浏览了相关问题并尝试了一些方法:

原始图片:http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg

  1. 滋润
    /usr/local/bin/mogrify -strip filename
    

结果:http
:
//s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg
此方法将尺寸从105 kB减小到99.6 kB,但还改变了颜色质量。

  1. Exif工具
    exiftool -all= filename
    

结果:http
:
//s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg
此方法将大小从105 kB减小到72.7 kB,但还改变了颜色质量。

  1. 该答案详细说明了如何操作Exif信息,但是如何使用它来删除该信息?

任何人都可以在不更改图像的颜色,尺寸和其他属性的情况下帮助我删除所有多余的元数据吗?


问题答案:

您可以尝试使用Python Image
Lirbary(PIL)
加载图像,然后再次将其保存到其他文件。那应该删除元数据。



 类似资料:
  • 我只是最近迁移一些旧的博客文章从一个网站到另一个。图像也已导入。然而,现在我的大多数图像返回404错误。 图片目前正在链接到/wp content/uploads/2018/05/image_name-800x600.jpg。我的问题是800x600是已添加的自定义图像大小。我尝试为800x600添加主题支持,然后使用“强制重新生成缩略图”WordPress插件重新生成缩略图。这似乎没有解决任何问

  • 我创建了一个JButton,如果我点击它,就会显示一张卡片。每次我点击这个按钮,下一张相同花色的牌就会出现,这个过程应该继续下去,直到所有13张相同花色的牌都显示出来。我在JLabel的ImageIcon上以图片的形式展示卡片。问题是,如果我想在同一个地方显示所有的牌,第一张牌不会从原来的位置移走,而是将其余的12张牌隐藏起来。这意味着每一张新牌,它应该被展示到它的前一张牌之下。我试图通过使用fr

  • 问题内容: 有什么方法可以使用PHP从JPG删除EXIF数据?我听说过PEL,但我希望有一种更简单的方法。我正在上传将在线显示的图像,并希望删除EXIF数据。 谢谢! 编辑:我不/不能安装ImageMagick。 问题答案: 使用重新创建图像的图形部分在一个新的,你保存 与另一名 。 参见PHP gd 编辑2017 使用新的Imagick功能。 开启图片: 确保在图像中保留所有ICC配置文件 然后

  • 我正在尝试从数据库中删除记录,以及从服务器中删除该记录的上载图像。我在控制器中有这个功能。 取消链接(C:\xampp\htdocs\larapro\public\newuploads\ 如果我使用 它显示: 解除关联(C: mpp\htdocs\larapro\Public\ewaddads{1470667358.png}):无效参数 我只是想知道为什么链接中的x和n丢失了。

  • 问题内容: 我正在使用PIL。如何将图片的EXIF数据转换为字典? 问题答案: 您可以使用PIL映像的受保护方法。 这应该给您一个由EXIF数字标签索引的字典。如果您希望字典由实际的EXIF标记名称字符串索引,请尝试以下操作:

  • 问题内容: 我曾经在我的iOS应用程序中选择图像,并且知道exif信息可以通过获取。但是,当我通过上载图像到服务器时,大多数exif信息已经被删除。我想知道是否可以在Http请求中将exif信息添加到我的图像中(此后以jpg格式上传的图像)。如果没有,我应该如何解决这个问题?我想更改“制作”,“模型”属性(换句话说,使用什么设备拍摄这张照片) 以下是我的代码段: 问题答案: 是! 最后,我做了一个