[英]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庫:
據我所知,沒有與TDecompressionStream類等效的.Net Framework。 您是否可以在Delphi中編寫一個小型的轉換器應用程序來解壓縮圖像? 然后,您可以在C#代碼中自由使用支持.Net的任何壓縮庫(例如SharpZipLib)。
如果必須保持已使用的相同壓縮,請將Delphi解壓縮例程滾動到DLL中,然后使用PInvoke從C#中使用它。
如果要替換壓縮,請編寫批處理過程以提取Delphi壓縮圖像,將其解壓縮為原始格式,然后使用您最喜歡的C#庫重新壓縮它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.