I'm using Lazarus 1.0.14 with BGRABitmap 7.2, and find what seems to be a related bug, so thought I would mention it here.
When drawing a bitmap to a PaintBox canvas, OS X and Windows use local coordinates, but Linux uses global. My code looks like this:
fBuffer := BmpResize(fBitmap, w, h, fFineResample);
{$IFDEF LINUX} // bug!!!
fBuffer.Draw(fView.Canvas, x + fView.Left, y + fView.Top, fOpaque);
{$ELSE}
fBuffer.Draw(fView.Canvas, x, y, fOpaque);
{$ENDIF}
where fBuffer and fBitmap are TBGRABitmaps and fView is a PaintBox. This took me many hours to track down, maybe helpful to someone.
Cheers,
Frederick