网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi图像数据压缩事例
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式


      SourceStream.Free;

      CompressedStream.Clear;

      //写入原始图像的尺寸

      CompressedStream.WriteBuffer(Count, SizeOf

      (Count));

      //写入经过压缩的图像流

      CompressedStream.CopyFrom(DestStream, 0);

      finally

      DestStream.Free;

     end;

    end;


//   3.还原被压缩图像

    procedure UnCompressBitmap(const CompressedStream: TFileStream; var Bmp: TBitmap);

     var

      SourceStream: TDecompressionStream;

      DestStream: TMemoryStream;
      Buffer: PChar;

      Count: Integer;

     Begin

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

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

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

      GetMem(Buffer, Count);

      DestStream := TMemoryStream.Create;

      SourceStream := TDecompressionStream.Create(CompressedStream);

     Try

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

      SourceStream.ReadBuffer(Buffer^, Count);

      //将原始图像流保存至 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

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

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

      Bmp.SaveToStream(CompressedStream);

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

      CompressBitmap(CompressedStream, clDefault);

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

      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;

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

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

      Try

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

       UnCompressBitmap(CompressedStream, Bmp);

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

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

       finally

       Bmp.Free;

       CompressedStream.Free;

      end;

      end;  


  此外 TCompressionStream对象还提供了 CompressionRate属
  • 上一篇资讯: 将hint显示在StatusBar1上
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号