Ich würde es mal mit
ImageMagick probieren. Das Beispiel dort paddet zwar alles auf eine feste Größe, aber ich bin sicher mit ImageMagick geht da auch noch mehr, das Tool ist recht mächtig. Habe aber selbst noch nicht damit gearbeitet, daher keine Ahnung wie es geht...
Unter Delphi kannst du mit der PngImage-
Unit PNGs verarbeiten, sofern du die
Unit noch findest (wurde von CodeGear gekauft, war aber vorher Open Source). Ansonsten gibt es noch die Lib
ImageEn (ok, die ginge aber wohl auch) ähh GraphicEx, die verschiedene Formate, u.a. PNG, unterstützt.