[Solved] PNGImageException 'Chunk length exceeds stream length' lazarus / 39-Graphics ---------------------------------------------------------------------- lainz · 2019-12-30 20:30 I'm getting the error PNGImageException 'Chunk length exceeds stream length' I'm using the unit posted here: https://forum.lazarus.freepascal.org/index.php/topic,47901.msg344243.h tml#msg344243 With this code I can not replicate the error, but is the same I'm doing in my application that's really big and propietary so I can not post it, but this is the intended use: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TForm1.Button1Click(Sender: TObject);var  LBuffer : rawbytestring;  stream: TFileStream;  s: TStringList;begin  LBuffer := #27'@'; // Initialise the printer  s := TStringList.Create;  s.LoadFromFile(Application.Location + 'logo.txt');  LBuffer := LBuffer + _ESCPosPrintBitmap().RenderBitmapBase64(s.Text);  s.Free;   stream := TFileStream.Create('logo.bin', fmCreate);  try    stream.Write(LBuffer[1], Length(LBuffer));  finally    stream.Free;  end;end; Whit this base64 image: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i data:image/ png;base64,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 = The application is in mode objfpc, the ssESCPosPrintBitmap.pas from the other post is in mode delphi. What can be causing the issue, I tested the image and it's a valid PNG image... any ideas? ---------------------------------------------------------------------- circular · 2019-12-30 20:45 I suspect a bit of the stream is not saved for some reason. ---------------------------------------------------------------------- lainz · 2019-12-30 20:54 What puzzles me is that in the demo project everything works fine, but when I want to incorporate to the application the error occurs. ---------------------------------------------------------------------- Cyrax · 2019-12-30 21:26 Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i type  IssESCPosPrintBitmap = interface( IInterface )      ['{3F279585-6D2E-451F-AF97-76F0E07A70DF}']      function RenderBitmap( const ABitmapFilename: string ): rawbytestring;      function RenderBitmapBase64(const base64data: string): rawbytestring;  end;  What about changing all occurrences of string type to rawbytestring one? Does that help? ---------------------------------------------------------------------- lainz · 2019-12-30 21:37 Hi, it does nothing. :S Also the function DecodeStringBase64(const s:string;strict:boolean=false):String; expects and returns strings. ---------------------------------------------------------------------- winni · 2019-12-30 21:51 Hi! Try to save the file without a stream but the old fashioned way: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i varf : file of byte;    .....assignFile(F,application.location+'logo.bin');rewrite(f);for i := 1 to length(LBuffer) do write(f,ord(LBuffer[i]));closeFile(f);                                           Look if now still an error occurs. Winni ---------------------------------------------------------------------- lainz · 2019-12-30 21:55 Thanks. I found the problem and it was outside the scope of the demo project, sorry  The problem was that the TBufDataset for some reason loaded only a part of the base64 string. Changed that line and it works.