我有一个用zlib压缩的tiff图像,但它们在文件的开头粘贴了4个字符的标识符.
我想开始在5位读取文件,跳过前4个字符,然后解压缩.
我修改了以下代码,但当它到达"LOutput.CopyFrom"行时,它告诉我DataError.
procedure TForm1.DecompressXE3 ;
var
LInput, LOutput: TFileStream;
LUnZip: TZDecompressionStream;
FSize : int64 ;
begin
{ Create the Input, Output, and Decompressed streams. }
LInput := TFileStream.Create(edtDecompressSrcFile.Text, fmOpenRead);
FSize := LInput.Size ;
LInput.Position := 5 ;
LOutput := TFileStream.Create(ChangeFileExt(edtDecompressSrcFile.Text, '.tiff'), fmCreate);
LUnZip := TZDecompressionStream.Create(LInput);
{ Decompress data. }
LOutput.CopyFrom(LUnZip, FSize-4 );
// LOutput.CopyFrom(LUnZip, 0 );
{ Free the streams. }
LUnZip.Free;
LInput.Free;
LOutput.Free;
end;
Run Code Online (Sandbox Code Playgroud)