Zitat:
PNG.Assign(srcbmp32);
Dafür müsste TPNGObject den Typ TBitmap32 kennen, was eine vollkommen schwachsinnige Abhängigkeit ergäbe,
damit das TPNGObject den Inhalt von TBitmap32 übernehmen könnte.
Fazit: Nicht Assign/AssignTo, sondern die Größe des PNG festlegen und dann auf dessen Canvas das Bitmap drauf malen.
Alternativ: TBitmap32 kennt TPNGObject und hat eine entsprechende Übergabefunktion implementiert. (ebenfalls eine blöde Abhängigkeit)
dann
srcbmp32.AssignTo(PNG);