高手来 如何判断 上传图片 是否被ps过 谢谢了 跪请高手指教http://topic.csdn.net/u/20100510/15/8b1ccb60-29c4-43bf-a2a3-746988036732.html这是我以前发的帖子 里面有些他们说道我没明白 求高手们做个参考谢谢了
解决方案 »
- WebBrowser的html代码访问Resources的图片路径怎么写
- 我到底该不该暂时放弃学C#而去学C语言?
- C# winform设计工具简单问题,来就给分
- 大家帮我解决一下递归保存在数组里的问题.拜托大家了!
- 请问点击splitter的分隔线时,splitter的2个窗口中的一个消失怎么实现?
- 如何在数组增加,修改,删除 数组元素
- wmi编程里如何设置连接超时的问题,急~~~~~~
- winform在程序运行过程中拖动和改变控件大小(兄弟些急用,谢了)
- 一个超级简单问题40分哦 恢复就有份阿
- 如何捕获一个Form是否被打开的状态?
- C# 如何监控一个网页中的提交事件?
- 基类的私有默认构造函数会被其派生类调用吗?
// 如果你是FileUpload控件上传得
Byte[] buffer = FileUpload1.FileBytes;
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")
{
// PS处理过
}"65100111981013280104111116111115104111112"的意思是“Adobe Photoshop”
PS处理过的文件会在第1305字节写入Adobe Photoshop CS2 Windows信息
你这样获得到字节的信息,看字节里有没有“Adobe Photoshop”,有的话就说明图片是PS过的。现在一般用的就是这个方法
代码是从原帖上copy过来的,我只是帮LZ解释下代码
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 Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Byte[] buffer = new Byte[5120]; using (FileStream fs = new FileStream("d:\\AttachmentHH.bmp", 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("Managed by PS.");
// PS处理过
}
else
{
MessageBox.Show("Not Managed by PS.");
}
}
}
}
用别的软件后期处理过的能检测出来吗??
欢迎使用CSDN 小秘书
***********************************************************[/align]
如果使用纯软件的方法就有点复杂,需要使用一些数学技巧,对源图进行处理后再进行分析,最简单的一种就是直方图,可以观察出几乎所有对图像进行全局修改的痕迹,例如亮度或对比度调整。还可以返回图像的边界然后进行观察和判断。
采用的是数字指纹技术,前提是必须收集所有图片采集的硬件设备的相关数据捷克的几个大学生花了7年的时间研发这款软件,在国际上还获了奖软件叫VerifEyed,有兴趣你可以查阅有关资料,貌似中文资料几乎为零……