程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi圖像數據壓縮事例(3)

Delphi圖像數據壓縮事例(3)

編輯:Delphi

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屬性,該屬性用於描述對原始數據進行壓縮後的壓縮比率,而 OnProgress事件在壓縮與解壓縮過程中都會被觸發,開發人員可以在該事件中編寫用於顯示進度的代碼。

以上代碼在 Delphi 5.0中調試運行通過。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved