方法一:通过 Exif 等图片信息鉴别

通常来说,图片生成时是会带有 Exif 等图片信息的。例如用手机拍摄的照片,Exif 就会携带有快门、光圈、手机型号等信息,而用 PS 处理过的图片,也会带有 Photoshop 的软件信息。因此,我们可以通过 Exif 信息,来判别某张图片是否是未经篡改的原图。

最简单的方法,自然就是直接看文件头了。例如一张图片是在 PS 中修改过、然后保存的,那么用记事本开启这张图片,就可以在它的文件头中,找到 “Photoshop”的字样,如下图所示。

▲ 用记事本打开图片文件,有 “Photoshop”字样,说明这是一张用 PS 保存的图片

能修改图片的软件不止 PS,如果是用其他软件来修改,我们还可以通过第三方软件来鉴别其 Exif,例如下面的这款 “JPEGsnoop”。

JPEGsnoop:https://www.impulseadventure.com/photo/jpeg-snoop.html

JPEGsnoop 是一款绿色软件,下载后直接运行即可。它是英文的,不过其使用起来没什么门槛。例如我们要鉴定一张图片是否被修改过,可以直接将图片拖移到它的界面当中,JPEGsnoop 就会对图片的 Exif 等信息进行分析。JPEGsnoop 呈现的分析非常多,但我们只需要关注最下面的 “ASSEMSSMENT”一项,例如下图。

▲ 鉴别出该图经过处理

根据 JPEGsnoop 给出的信息,这张图片是经过处理或者编辑的,也就是说它不是原图。

再看这张图,JPEGsnoop 判断它就是原图,没有经过任何 PS,可以确信为真了。

▲ 鉴别出这是原始图片

方法二:通过图片内容鉴别

通过 Exif 鉴别图片是否是原图,的确是行之有效的,但这种方法也有其局限,那就是它只能鉴定图片是否是原图,而不能鉴定图片内容是否保真。例如用 QQ、微信发送的图片,会被压缩过,图片内容没有被修改,但通过 Exif 鉴别,这仍属于处理过的图片,如此一来就显得意义不大了。

如果你想要鉴别图片内容是否被修改,那么直接鉴别图片的内容是更靠谱的方法。问题来了,这属于技术活,往往需要人工细细甄别,有没有更加傻瓜智能的方法?还真有,例如 Forensically 这个网站,其中很多功能,都非常方便且实用,可以帮你快速鉴定图片有没有被 P 过。

Forensically clone Detection:https://29a.ch/photo-forensics/

首先来说说其中的 “Clone Detection”功能。顾名思义,这可以检测图片是否存在克隆现象。通常来说,修改图片时,例如去除水印、杂物等等,都会用到 PS 中的像素克隆工具,Forensically 的检测原理就在于识别图片中重复的像素,来判断这张图片有没有被像素克隆工具修改过,下图就是 Forensically 默认提供的样张。

▲ 这些红线连起来的区域,像素是一模一样的,证明经过 PS 克隆工具的涂抹

在 Forensically 的鉴别结果中,白斑代表一模一样的像素,红线代表相同像素的平移路径。可以看到,途中有大面积相邻像素都是一模一样的,这就是经过克隆的痕迹,这无疑就是一张 PS 过的图片。

再来看一张正常的照片。

▲ 没 P 过的图,没有集中分布的相似像素

这张照片是没有经过 PS 的,在 Forensically 中尽管也鉴别出了一模一样的像素,但分布面积小且零散,因此可以认为这张图片没有被克隆工具修改过。

Forensically 的 Clone Detection 只适用于使用克隆工具修改的照片,对于其他 P 图情况,我们可以使用 Forensically 的其他工具鉴别。

例如,Forensically 的 “Error Level Analysis”功能,可以突出显示某些肉眼看上去差不多、但从计算机角度来看非常突兀的像素。例如这张示例图中的飞碟,就很显眼了,这明显就是 P 上去的。

▲ 经过一定算法处理,发现某一块像素的特征和周围的明显不同,这显然是 P 上去的图像

再来看看原始拍摄未经处理的照片,可见计算机认为像素特征是均匀的,没有突兀的像素群。

▲ 未 P 过的图像,算法处理后的像素特征是相似的

当然,Forensically 也是存在局限的,它的原理决定它只能适用于鉴定拍摄的照片(还不能有太多过曝之类造成的 “死像素”),对于截图或者 CG 这样的人造图像不那么适用。但无论如何,如果你想要鉴别某张照片有没有被 P 过,Forensically 仍是非常不错的辅助工具。

检验图片有没有被 P 过相关推荐

  1. php判断图片有没有ps过,用来检验图片有无PS过的司法取证利器JPEGsnoop 1.8.0

    免费! 支持Windows,Mac,Linux, 支持jpg,pdf,psd,avi,mov等多类型文件; 2018-06-18 10-34-39.png (15.26 KB, 下载次数: 4) 20 ...

  2. python模块之image修改图片类型

    python模块之image修改图片类型 有时候我们需要不同格式的图片后缀格式,如:png,jpg,如果仅仅手动修改图片的后缀的话,只是表面修改了后缀格式,其实图片的原类型仍然没有变化,可以用pyth ...

  3. Java实现微信小程序校验图片是否含有违法违规内容

    文章目录 1.Java实现微信小程序校验图片是否含有违法违规内容(security.imgSecCheck) 2.接口文档简述 3.Java实现对接接口 4.压缩图片(Thumbnails) 5.整合 ...

  4. 聊聊WEB项目中的图片

    最近一直在鼓捣图片相关的代码,今天抽时间写篇总结.此文没有什么高深的知识点,不汲及第三方的OSS相关点,更不汲及分布式文件存储框架,算是一篇关于WEB项目中图片相关功能的扫盲文; 同时与大家分享码字时 ...

  5. Vue图片加载错误、图片加载失败的处理

    加载一个图片pic,会在代码里做一个检验图片是否存在,通常会像下面这样写 <img :src="pic?pic:'../assets/img/load.png'" alt=& ...

  6. android qq图片分享到朋友圈,Android 调用系统分享文字、图片、文件,可直达微信、朋友圈、QQ、QQ空间、微博...

    转载自:https://www.liangzl.com/get-article-detail-18749.html 兼容SDK 18以上的系统,直接调用系统分享功能,分享文本.图片.文件到第三方APP ...

  7. php如何检查图片是否一样,PHP判断图片是否为标准图片(防止篡改图片下传)

    PHP判断图片是否为标准图片(防止篡改图片下传)PHP判断图片是否为标准图片(防止篡改图片上传) 在项目安检时发现,某系项目中图片上传只是对后缀名进行了检查,导致含有某些代码的'图片'也能上传到服务器 ...

  8. A2-1 利用stb_image.h来进行图片的绘制与显示

    目录 (一)读取图片 (二)绘制图片 TIP1:Debug: (三)stb_image.h库下载与使用 使用教程: TIP2:gittee源代码 如有问题请就指出,谢谢! stb_image 是一个简 ...

  9. 如何用Python和深度神经网络识别图像?

    本文授权转自微信公众号芝兰玉树 作者 | 王树义 只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类.快来试试吧! 视觉 进化的作用,让人类对图像的处理非常高效. 这 ...

  10. 解决PHP生成校验码时“图像因其本身有错无法显示”的错误

    2019独角兽企业重金招聘Python工程师标准>>> 今天使用http://crazymud.iteye.com/blog/452293给出的代码进行PHP生成校验码功能的实现,发 ...

最新文章

  1. 豪鹫闲谈--什么因素影响了我们的工资
  2. redis存储的数据类型
  3. 二进制求和Python解法
  4. php用session制作网站仿恶意刷新计数器
  5. 洛谷P1650:田忌赛马(贪心)
  6. Cocos2d-x Lua中实例:帧动画使用
  7. BCD码和十六进制的区别【转】
  8. 想“跟”在后面?不是那么简单的事情
  9. Python3 - 苹果ID登录App Sign in with Apple
  10. git send-email 使用126邮件发送patch
  11. 10bit色深灰度图彩色图加载显示
  12. 18.移动点餐端搭建----点餐系统移动端
  13. TensorFlow Eager 教程(转)
  14. Metaq原理与应用
  15. 智慧交通产品解决方案-交通地理信息平台
  16. android 首页广告位,Android 使用 ViewPager循环广告位的实现
  17. 【YM】ssh命令 远程登录Linux
  18. android 短信转发设置权限,用Tasker实现Android手机短信转发到钉钉
  19. android播放视频过程cpu占用高,Android App高CPU使用率和电池消耗
  20. 紧急通知:无论你英语多差,只要想学,看了此文必有改变

热门文章

  1. html语言文本框怎么做,HTML文本框参考样式
  2. 正在设定 ttf-mscorefonts-installer
  3. 股票控件android,一个Android股票应用(含源码)
  4. 好书推荐:创业必看好书排行榜推荐
  5. rocketmq实现延迟队列
  6. 团队作业8----第二次项目冲刺(Beta阶段) 第四天
  7. ABAP 中JSON格式的转换与解析
  8. 洛谷 P2014 选课
  9. pid file /opt/zbox/tmp/apache/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
  10. JeecgBoot商业版源码下载