Hallo,
ich möchte gern größere Bilder mithilfe der Funktionen aus der
GDI+ -Bibliothek verkleinern. Leider habe ich keine Ahnung, wie ich das so recht anstellen soll. Auch möchte ich, um Resourcen zu schonen, auf fertige Units verzichten.
Ich bin soweit, dass ich die
GDI+ initialisiert, Bitmaps angelegt und deren Speicher wieder freigegeben habe. Ich finde aber nichts genaues, mit welchen Funktionen ich ein Resample erreichen kann.
Aufgrund meiner Recherchen vermute ich, dass ich die Größenänderung mit mit
GdipDrawImageRect()
hinbekommen könnte. Mein Plan sieht so aus:
- TBitmap (Source) habe ich schon.
- TBitmap (Destination) lege ich an
- Mit GdipCreateBitmapFromHBITMAP()
erzeuge ich ein GDI+konformes Image von Source
- Dasselbe mit Destination
- Problem 1: Bei welchem der beiden GDI+ Images muss ich jetzt mit GdipSetInterpolationMode()
den Modus festlegen, damit es etwas wird? Oder muss ich das für beide GDI+ Images machen?
- Problem 2: Wie Resample ich?
- Problem 3: Bekomme ich das Ergebnis mit GdipCreateHBITMAPFromBitmap()
wieder zurück?
- Beide GDI+ Images mit GdipDisposeImage()
wieder freigeben
Ich denke auch,
dass ich kein zweites TBitmap brauchte. Ich finde aber keine Funktion, mit der ich einfach so ohne Bezug zur (normalen)
GDI ein
GDI+ Bitmap erstellen kann. Auch insoweit wäre ich für Hilfe dankbar.
Ich möchte das ganze später in einem von TBitmap abgeleiteten Object unterbringen und würde mir gern das Hilfsbitmap sparen.
Gruß, Alex