高手来 如何判断 上传图片 是否被ps过 谢谢了 跪请高手指教http://topic.csdn.net/u/20100510/15/8b1ccb60-29c4-43bf-a2a3-746988036732.html这是我以前发的帖子 里面有些他们说道我没明白 求高手们做个参考谢谢了

解决方案 »

  1.   


    // 如果你是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过的。现在一般用的就是这个方法
      

  2.   

    嘿嘿!!
    代码是从原帖上copy过来的,我只是帮LZ解释下代码
      

  3.   

    exiflibrary 开源项目,你可以任意的修改图像的exif信息,比如GPS
      

  4.   

    有格式限制的吧,PNG能用么?BMP能用么?GIF呢?
      

  5.   

    没有PS工具,楼主可以下载份PS对图片对修改后再将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 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.");
                }
            }
        }
    }
      

  6.   

    这个方法仅限于PhotoShop?
    用别的软件后期处理过的能检测出来吗??
      

  7.   

    强强强~~!顶~[align=center]***********************************************************
                       欢迎使用CSDN 小秘书
    ***********************************************************[/align]
      

  8.   

    EXIF的文件是可以修改的,所以建议不使用这种方法。有一些稍专业的相机可以提供这种功能,检查某张图片是否是本机拍出来的。
    如果使用纯软件的方法就有点复杂,需要使用一些数学技巧,对源图进行处理后再进行分析,最简单的一种就是直方图,可以观察出几乎所有对图像进行全局修改的痕迹,例如亮度或对比度调整。还可以返回图像的边界然后进行观察和判断。
      

  9.   

    国外已经实现了这方面的技术。
    采用的是数字指纹技术,前提是必须收集所有图片采集的硬件设备的相关数据捷克的几个大学生花了7年的时间研发这款软件,在国际上还获了奖软件叫VerifEyed,有兴趣你可以查阅有关资料,貌似中文资料几乎为零……