Canvas.Draw ends up calling StretchBlt in the end (via TBitmap.Draw), after about 20 lines of preparatory code (checking palettes and so on).

But don't use Canvas.Pixels, it's really slow. I seem to remember that earlier versions of Delphi actually had a warning in the help files indicating that it wasn't for production use, or something like that. Also, you'll notice a sarcastic comment in the help files for its example: "This example draws a red line (very slowly)".