网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用clientsocket发送http头请求.
.Delphi编译错误中文手册.
.用Delphi获取当前系统时间.
.在Delphi中处理数据库日期型字段.
.Delphi2005(DiamondBack)使用体验.
.lua头文件翻译之lauxlib.
.Delphi部分函数、命令、属性中文.
.Delphi工具—反编译Delphi(三).
.关于程序只运行一次的问题.
.IntToBin(2-16进制转换函数).
.如何将C/C++程序转译成Delphi(十.
.DELPHI中数据文件路径的管理.
.远程控制篇:服务端程序的隐藏.
.最短路径(校园导游)的简单算法.
.COM/DCOM中如何传递数组.
.使用类方法控制实例的唯一性.
.Com接口入门细详(二).
.Delphi的组件读写机制(三).
.在Delphi中获取和修改文件的时间.
.使你的窗体保留在桌面的最上面.

Delphi数据压缩处理(2)

发表日期:2006-2-4


Delphi数据压缩处理(2)

      Buffer: PChar;

      Count: Integer;

     Begin

      file://从被压缩的图像流中读出原始图像的尺寸

      CompressedStream.ReadBuffer(Count, SizeOf(Count));

      file://根据图像尺寸大小为将要读入的原始图像流分配内存块

      GetMem(Buffer, Count);

      DestStream := TMemoryStream.Create;

      SourceStream := TDecompressionStream.Create(CompressedStream);

     Try

      file://将被压缩的图像流解压缩,然后存入 Buffer内存块中

      SourceStream.ReadBuffer(Buffer^, Count);

      file://将原始图像流保存至 DestStream流中

      DestStream.WriteBuffer(Buffer^, Count);

      DestStream.Position := 0;//复位流指针

      //从 DestStream流中载入原始图像流

      Bmp.LoadFromStream(DestStream);

      finally

      FreeMem(Buffer);

      DestStream.Free;

     end;

    end;

   4.压缩按钮 OnClick事件

    procedure TForm1.Button1Click(Sender: TObject);

     var

      Bmp: TBitmap;

      CompressedStream: TMemoryStream;

     begin

      Bmp := TBitmap.Create;

      CompressedStream := TMemoryStream.Create;

     Try

       file://捕获当前整个屏幕 ,将图像保存至 Bmp对象中 GetScreen(Bmp);

      file://将 Bmp对象中的图像保存至内存流中

      Bmp.SaveToStream(CompressedStream);

      file://按缺省的压缩比例对原始图像流进行压缩

      CompressBitmap(CompressedStream, clDefault);

      file://将压缩之后的图像流保存为自定义格式的文件

      CompressedStream.SaveToFile(‘ C:cj.dat’ );

      finally

      Bmp.Free;

      CompressedStream.Free;

     end;

    end;

   5.解压缩按钮 OnClick事件

     procedure TForm1.Button2Click(Sender: TObject);

      var

       CompressedStream: TFileStream;

       Bmp: TBitmap;

      begin

       Bmp := TBitmap.Create;

       file://以文件流的只读方式打开自定义的压缩格式文件

       CompressedStream := TFileStream.Create(‘ C:cj.dat’ , fmOpenRead);

      Try

       file://将被压缩的图像流进行解压缩

       UnCompressBitmap(CompressedStream, Bmp);

       file://将原始图像流还原为指定的 BMP文件

       Bmp.SaveToFile(‘ C:cj.bmp’ );

       finally

       Bmp.Free;

       CompressedStream.Free;

      end;

      end;

  此外 TCompressionStream对象还提供了 CompressionRate属性,该属性用于描述对原始数据进行压缩后的压缩比率,而 OnProgress事件在压缩与解压缩过程中都会被触发,开发人员可以在该事件中编写用于显示进度的代码。

  以上代码在 Delphi 5.0中调试运行通过。
上一篇:Delphi数据压缩处理(1) 人气:4431
下一篇:用Delphi制作中国式报表 人气:4615
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐