今天在网上发现一个判断图片是否被Photoshop修改过的方法。发现还不错,呵呵。摘录下来。

讲下基本的原理:其实每张被photoshop修改过的图片都会有Adobe Photoshop这样的字样在图片的字节流里。用最简单的方法,你可以直接把一张图片拖到txt文档中打开,你会发现是乱码,但不要紧,你仔细搜索,肯定有Adobe Photoshop这几个字样,这就说明是被ps修改过的。呵呵。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
public partial class PsCheck : Form
{
public PsCheck()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Byte[] buffer = new Byte[5120];

using (FileStream fs = new FileStream("E:\\photo.jpg", FileMode.Open))
{
fs.Read(buffer, 0, buffer.Length);
}

string str = buffer[4869].ToString(); //A 65
str += buffer[4870].ToString();//d 100
str += buffer[4871].ToString();//o 111
str += buffer[4872].ToString();//b 98
str += buffer[4873].ToString();//e 101
str += buffer[4874].ToString();//  32
str += buffer[4875].ToString();//P 80
str += buffer[4876].ToString();//h 104
str += buffer[4877].ToString();//o 111
str += buffer[4878].ToString();//t 116
str += buffer[4879].ToString();//o 111
str += buffer[4880].ToString();//s 115
str += buffer[4881].ToString();//h 104
str += buffer[4882].ToString();//o 111
str += buffer[4883].ToString();//p 112

if (str == "65100111981013280104111116111115104111112")
{
MessageBox.Show("图片被PS修改过"); // PS处理过
}
else
{
MessageBox.Show("没被PS修改");
}
}
}
}

C# 判断上传图片是否被PS修改过的方法的更多相关文章

  1. JS判断上传图片格式是否正确

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码

    1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...

  3. PHP判断上传图片的类型

    PHP判断上传图片的类型用getimagesize来判断上传图片的类型比$_FILES函数的type更可靠 同一个文件,使用不同的浏览器php返回的type类型是不一样的,由浏览器提供type类型的话 ...

  4. (转)java判断string变量是否是数字的六种方法小结

    java判断string变量是否是数字的六种方法小结 (2012-10-17 17:00:17) 转载▼ 标签: it 分类: 转发 1.用JAVA自带的函数 public static boolea ...

  5. 扩展Exception,增加判断Exception是否为SQL引用约束异常方法!

    在设计数据表时,如果将某些列设置为关联其它表的外键,那么如果对其进行增加.修改操作时,其关联表若没有相匹配的记录则报错,或者在对其关联表进行删除时,也会报错,这就是外键约束的作用,当然除了外键还有许多 ...

  6. 【MySQL】MySQL忘记密码或修改密码的方法

    MySQL修改新密码方法 记得原密码情况下,修改新密码:登录到数据库后,输入 set password for 用户名@localhost = '新密码';  来设置新的密码,别忘记分号哦.如图所示: ...

  7. DOM修改元素的方法总结

    今天我们要谈谈DOM元素的修改(包括修改内容,属性,样式).修改内容的方法----3种:elem.innerHTML:获取或设置元素开始标签到结束标签之间的原始HTML代码片段:elem.textCo ...

  8. Magento后台手动修改订单状态方法及手动修改方法php

    订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtm ...

  9. UWP游戏防内存修改器的方法

    最近我一直在编写适用于Windows 10商店的游戏.这款游戏比较怕玩家用修改器改金钱,因为这种修改会导致某些内购失效并且损害公平性.于是我把自己见过的三种反修改器的方法给网友们介绍一下. 首先说明一 ...

随机推荐

  1. 从汇编看c++中的多态

    http://www.cnblogs.com/chaoguo1234/archive/2013/05/19/3079078.html 在c++中,当一个类含有虚函数的时候,类就具有了多态性.构造函数的 ...

  2. Linux之Nginx服务 nfs文件存储 负载均衡

    一.搭建Nginx服务 Nginx 是俄罗斯人编写的十分轻量级的HTTP 服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个I ...

  3. CS193p Lecture 5 - View Controller Lifecycle

    1. UITextView @property(nonatomic,readonly,retain) NSTextStorage *textStorage 是 NSMutableAttributedS ...

  4. 如何正确入门Windows系统下驱动开发领域?

    [作者]猪头三个人网站 :http://www.x86asm.com/ [序言]很多人都对驱动开发有兴趣,但往往找不到正确的学习方式.当然这跟驱动开发的本土化资料少有关系.大多学的驱动开发资料都以英文 ...

  5. 【Java_基础】Java的访问权限控制

    1.类成员的访问权限控制 Java中类成员的访问权限分为四类:private,无(默认情况下),protected和public.其权限控制如下表所示: 修饰词 本类 同一个包的类 继承类 其他类 p ...

  6. (转)iOS开发之Pch预编译文件的创建

    本文转自 http://www.cnblogs.com/496668219long/p/4568265.html 在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹 ...

  7. LeetCode(110) Balanced Binary Tree

    题目 Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bina ...

  8. BZOJ 2508: 简单题

    题目大意: 加入直线,删除直线,求点到所有直线的距离的平方和. 题解: 把点到直线的距离公式写出来,然后展开.维护六个值,计算一个二元的多项式的最小值. 对x和y分别求导,导数都为零时取到极值.然后解 ...

  9. 关于Linux下安装Oracle

    参考文档:http://www.cnblogs.com/gaojun/archive/2012/11/22/2783257.html 中文字符集设置:    http://blog.csdn.net/ ...

  10. python算法-队列

    一.队列的特征性: 1. 先进先出 9 8 7 6 5 4 3 2 1 0 last                                                           ...