Die Bitmaps zum Schreiben auf den Canvas gebe ich immer sofort frei und habe es auch mittlerweile hinbekommen, die auf 8bit runterzunehmen .
Die TPrinter.Canvas haben intern auch ein Speicherformat. Soweit ich mich erinnere hängt das default Speicherformat von Windows Einstellungen ab.
Wenn man ein TBitmap rein zeichnet wird das Bild in das Format vom Canvas umgewandelt.
Es wird nur übernommen wenn man mit Assign arbeitet.
Code:
PrinterPage.Canvas.Assign(SourceBitmap.Canvas)
In älteren Delphi Versionen gab es mit Graphics/Canvas Probleme beim Assign. Keine Ahnung ob es die aktuell noch gibt.