線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1466
推到 Plurk!
推到 Facebook!

超難問題二部曲--TMemoryStream

 
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-01 22:04:37 IP:61.225.xxx.xxx 未訂閱
請問有沒有範例是演示壓縮/解壓縮TMemoryStream的資料 世界上最美麗的東西就是真實的自己~~~
------
智慧是命運的征服者
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-06-01 23:26:52 IP:192.168.xxx.xxx 未訂閱
引言: 請問有沒有範例是演示壓縮/解壓縮TMemoryStream的資料 世界上最美麗的東西就是真實的自己~~~
可否詳細說明需求呢?目的何在? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-06-02 22:05:51 IP:61.216.xxx.xxx 未訂閱
我要將圖檔(bmp)或聲音檔讀進去後遠端傳送,但遇到資料量大時速度會變慢,想試試看有沒有辦法壓縮,還是只能存成暫存檔後壓縮再傳送? 謝謝^_^ 程式就是藝術,藝術就是生命,生命就是美
------
智慧是命運的征服者
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-06-02 22:39:10 IP:192.168.xxx.xxx 未訂閱
引言: 我要將圖檔(bmp)或聲音檔讀進去後遠端傳送,但遇到資料量大時速度會變慢,想試試看有沒有辦法壓縮,還是只能存成暫存檔後壓縮再傳送? 謝謝^_^ 程式就是藝術,藝術就是生命,生命就是美
那您使用本站的壓縮元件,可以將檔案變成壓縮檔! 請見:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=7315 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
kynix
初階會員


發表:37
回覆:100
積分:37
註冊:2002-06-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-06-03 16:45:27 IP:61.216.xxx.xxx 未訂閱
我是希望說把圖等資料讀入記憶體後進行修改壓縮傳送(因為要處理大量的資料 ,用記憶體比較快) 程式就是藝術,藝術就是生命,生命就是美
------
智慧是命運的征服者
One2Free
一般會員


發表:26
回覆:28
積分:20
註冊:2004-05-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-28 14:06:44 IP:219.135.xxx.xxx 未訂閱
{BMP流的压缩是无损压缩} { 全局变量 memoryStream:TMemoryStream; memoryStream:=TMemoryStream.create; } var image:Timage; jpgstream:TJPEGImage; ss:tcanvas; begin ss:=tcanvas.Create; ss.Handle:=getdc(0); image:=timage.Create(self); image.width:=Screen.width; image.Height:=screen.Height ; image.picture.bitmap.PixelFormat:= pf16bit; bitblt(image.canvas.handle,0,0,image.width,image.height,ss.handle,0,0,srccopy); {大大的BMP流 image.picture.bitmap.SaveToStream(memoryStream); } {无损压缩BMP流 //uses Zlib.pas //先定义变量count,DestStream,SourceStream image.picture.bitmap.SaveToStream(memoryStream); Count:=memoryStream.Size; DestStream:=TMemoryStream.Create; //压缩方式:clnone,clfastest,cldefault,clmax SourceStream:=TCompressionStream.Create(cldefault, DestStream); try memoryStream.SaveToStream(SourceStream); SourceStream.Free; memoryStream.Clear; memoryStream.WriteBuffer(Count, SizeOf(Count)); memoryStream.CopyFrom(DestStream, 0); finally DestStream.Free; end; } {还原BMP流 //uses Zlib.pas //先定义变量count,buffer,DestStream,SourceStream //memoryStream是压缩的BMP流 memoryStream.ReadBuffer(Count, SizeOf(Count)); GetMem(Buffer, Count); DestStream:=TMemoryStream.Create; SourceStream:=TDecompressionStream.Create(memoryStream); Try SourceStream.ReadBuffer(Buffer^, Count); DestStream.WriteBuffer(Buffer^, Count); DestStream.Position:=0; image.Picture.Bitmap.LoadFromStream(DestStream); finally FreeMem(Buffer); DestStream.Free; end; } {JPG流 //uses jpeg jpgstream:= TJPEGImage.Create; jpgstream.Assign(image.picture.bitmap); jpgstream.CompressionQuality:=50;//压缩质量 jpgstream.Compress; jpgstream.SaveToStream(memoryStream);//保存为JPG流 //使用JPG流 image.Picture.Assign(jpgstream); jpgstream.free; } ReleaseDC(0,ss.Handle); image.free; {发送内存流...} end;
系統時間:2024-07-05 2:27:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!