我有一些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#解压缩它?
答案 0 :(得分:3)
看起来TDecompressionStream
可能使用ZLib。这是一个用于ZLIB的.NET库:
答案 1 :(得分:1)
据我所知,没有.Net Framework等同于TDecompressionStream类。您是否能够在Delphi中编写一个解压缩图像的小型转换器应用程序?然后,您可以在C#代码中自由使用支持.Net的任何压缩库(例如SharpZipLib)。
答案 2 :(得分:0)
如果必须保持已经使用的相同压缩,请将Delphi解压缩例程转换为DLL并使用PInvoke从C#中使用它。
如果要替换压缩,请编写批处理以提取Delphi压缩图像,将其解压缩为原始格式,然后使用您喜欢的C#库重新压缩它们。