繁体   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