我有现成的技术,可以加密256色图象并可在Delphi的TImage中显示,TImage一切属性均可用,真彩版的正在开发,EMail到[email protected]我发个例子给你

解决方案 »

  1.   

    日後PhotoShop7.0推出後, 他们的图片可以pdf存档, 便会有基本的加密了.
    现行的图片如bmp, jpg都是公开的规格, 都无加密的保安.因此你或许先把
    所有图片存入数据库中, 只有合法用户才可观看. 但当让他们另存新档之後
    便无其他的方法了.
      

  2.   

    我试了一下,最简单的改文件头是简洁实用,只要一般用户看不出来就可以了。但我对流操作不熟,写出来的算法感觉很差,希望能帮我看一下怎么改进好:procedure TForm1.Button1Click(Sender: TObject);
    var
      fs1, fs2: TMemoryStream;
      c: char;
    begin
      //加密
      fs1 := TMemoryStream.Create;
      fs2 := TMemoryStream.Create;
      fs1.LoadFromFile(imagefile);
      fs1.Position := 0;
      c := 'A'; //相当于改了头文件  fs2.Write(c, 1);
      fs2.CopyFrom(fs1, fs1.Size); //这里怎么简化(不用拷来拷去的?)
      fs2.SaveToFile(tempFile);
      fs1.free;
      fs2.free;  //解密
      fs1 := TMemoryStream.create;
      fs2 := TMemoryStream.create;
      fs1.LoadFromFile(tempFile);
      fs1.Position := 1; //去掉前面的"A" 
      fs2.CopyFrom(fs1, fs1.size - 1);
      fs2.SaveToFile(tempFile2);  //这里怎么简化(不用拷来拷去,临时文件什么的)
      image2.Picture.LoadFromFile(tempFile2);
      fs1.free;
      fs2.free;
    end;
      

  3.   

    to: dongfx 因为我用到的图片有各种格式的,而且可能是真彩色的,所以深度加密可能有困难
      

  4.   

    263, 仅改动头部几个字节是没多大用的。用ACDSEE很多这样的图片还是能识别的。不过应该可以用对全部内容进行或运算,或者翻转全部内容来实现:  ms1 := TMemoryStream.Create;
      ms2 := TMemoryStream.Create;
      ms1.LoadFromFile(imagefile);
      for i := ms1.size-1 downto 0 do
      begin
        ms1.Seek(i, 0);
        ms2.CopyFrom(ms1, 1);
      end;不过这个算法有问题,对一张2M的图片居然需要好几秒钟。特此请教各位高手,如何快速对TStream里的内容进行或运算,或把它的内容翻过来。