国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

Delphi數(shù)據(jù)壓縮處理(2)

2019-11-18 18:46:16
字體:
供稿:網(wǎng)友
Delphi數(shù)據(jù)壓縮處理(2)

      Buffer: PChar;

      Count: Integer;

     Begin

      file://從被壓縮的圖像流中讀出原始圖像的尺寸

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

      file://根據(jù)圖像尺寸大小為將要讀入的原始圖像流分配內(nèi)存塊

      GetMem(Buffer, Count);

      DestStream := TMemoryStream.Create;

      SourceStream := TDecompressionStream.Create(CompressedStream);

     Try

      file://將被壓縮的圖像流解壓縮,然后存入 Buffer內(nèi)存塊中

      SourceStream.ReadBuffer(Buffer^, Count);

      file://將原始圖像流保存至 DestStream流中

      DestStream.WriteBuffer(Buffer^, Count);

      DestStream.Position := 0;//復(fù)位流指針

      //從 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://捕獲當(dāng)前整個屏幕 ,將圖像保存至 Bmp對象中 GetScreen(Bmp);

      file://將 Bmp對象中的圖像保存至內(nèi)存流中

      Bmp.SaveToStream(CompressedStream);

      file://按缺省的壓縮比例對原始圖像流進(jìn)行壓縮

      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://將被壓縮的圖像流進(jìn)行解壓縮

       UnCompressBitmap(CompressedStream, Bmp);

       file://將原始圖像流還原為指定的 BMP文件

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

       finally

       Bmp.Free;

       CompressedStream.Free;

      end;

      end;

  此外 TCompressionStream對象還提供了 CompressionRate屬性,該屬性用于描述對原始數(shù)據(jù)進(jìn)行壓縮后的壓縮比率,而 OnProgress事件在壓縮與解壓縮過程中都會被觸發(fā),開發(fā)人員可以在該事件中編寫用于顯示進(jìn)度的代碼。

  以上代碼在 Delphi 5.0中調(diào)試運行通過。

上一篇:用Delphi制作中國式報表

下一篇:Delphi數(shù)據(jù)壓縮處理(1)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 大余县| 香格里拉县| 巩留县| 太康县| 衡山县| 沂南县| 房产| 洪江市| 河津市| 大邑县| 武功县| 青冈县| 尼玛县| 陇川县| 格尔木市| 巧家县| 西华县| 乌兰察布市| 澄迈县| 杭锦后旗| 突泉县| 平利县| 济南市| 襄汾县| 普宁市| 广平县| 内黄县| 万宁市| 大关县| 石屏县| 伊宁县| 刚察县| 上饶县| 洪江市| 宜丰县| 新蔡县| 嘉黎县| 孟村| 会昌县| 开阳县| 扶余县|