Du setzt erst das Bitmap des TImage auf nil und weist dann Can eben dieses zu, Can ist somit auch nil. Anschließend greifst Du auf den Canvas von "nichts" zu. Ist das so beabsichtigt?
Der Getter von TPicture.Bitmap erzeugt automatisch eine neue Instanz, wenn keine da ist oder kein TBitmap ist.