簡體   English   中英

Delphi TDecompressionStream的C#等效項是什么?

[英]What's the C# Equivalent of a Delphi TDecompressionStream?

我有一些這樣做的Delphi代碼需要在C#中重新編碼:

procedure TDocSearchX.Decompress;
var
BlobStream:TBlobStream;
DecompressionStream:TDecompressionStream;
FileStream:TFileStream;
Buffer:array[0..2047] of byte;
count:integer;
begin
    BlobStream:=TBlobStream.Create(DocQueryDATA,bmRead);
    DecompressionStream:=TDecompressionStream.Create(BlobStream);
    FileStream:=TFileStream.Create(FDocFile,fmCreate);
    while True do
    begin
        Count := DecompressionStream.Read(Buffer, 2048);
        if Count <> 0 then FileStream.Write(Buffer, Count) else Break;
    end;
    Blobstream.Free;
    DecompressionStream.Free;
    FileStream.Free;
end;

編寫此內容的承包商要離開,我需要解壓縮圖像(當前存儲在數據庫中)。 我已經能夠將圖像提取到文件中,但是不知道如何使用C#對其進行解壓縮?

看起來TDecompressionStream可能使用ZLib。 這是ZLIB的.NET庫:

http://www.componentace.com/zlib_.NET.htm

據我所知,沒有與TDecompressionStream類等效的.Net Framework。 您是否可以在Delphi中編寫一個小型的轉換器應用程序來解壓縮圖像? 然后,您可以在C#代碼中自由使用支持.Net的任何壓縮庫(例如SharpZipLib)。

如果必須保持已使用的相同壓縮,請將Delphi解壓縮例程滾動到DLL中,然后使用PInvoke從C#中使用它。

如果要替換壓縮,請編寫批處理過程以提取Delphi壓縮圖像,將其解壓縮為原始格式,然后使用您最喜歡的C#庫重新壓縮它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM