[英]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.