Einzelnen Beitrag anzeigen

QStorm

Registriert seit: 28. Jun 2008
46 Beiträge
 
#1

x Bilder einheitlich skaliert auf drittes Bild zeichen

  Alt 19. Apr 2013, 11:38
Hallo,

Vorab, verzeiht mir, falls das Thema schon aufkam. Ich habe mit Hilfe der Suche kein passendes Thema gefunden. Folgendes Problem beschäftigt mich:

Ich habe Bilder in verschiedenen Formaten vorliegen (BMP, JPEG, PNG, GIF, ...). Die Bilder kommen teilweise aus einer Datenbank, aber auch aus anderen Quellen. Nun möchte ich diese Bilder proportional korrekt auf eine gemeinsame Größe skalieren und in einem Raster (NxM) auf ein drittes Bild zeichnen. Dabei soll die Transparenz der einzelnen Bilder berücksichtigt werden. Einige Bilder haben halb-transparente Farben (Alphakanal). Zudem haben die Ausgangsbilder unterschiedliche "Transparentfarben". Der Hintergrund, des Zielbildes (auf den die Bilder gezeichnet werden sollen) soll ebenfalls transparent sein.

Ich habe es mit verschiedenen Ansätzen versucht. Leider bin ich auf die folgenden Probleme gestoßen:
- "Canvas.StretchDraw" liefert eine sehr schlechte Qualität (die Skalierung eines TBitmaps habe ich schlussendlich auf andere Weise in akzeptabler Qualität hinbekommen)
- die Standardimplementierung von TBitmap unterstützt so wie es aussieht keine halb-transparenten Farben und auch nur BMP
- nachdem ich Bilder mit unterschiedlichen "Transparentfarben" auf das Zielbild gezeichnet habe, gab es Probleme mit der Transparenz

Habt ihr eine Idee/Ansatz, wie man das Problem lösen könnte?
Wenn möglich:
- ohne TImage
- ohne externe Lib

Vielen Dank im Voraus

Grüße
QStorm
  Mit Zitat antworten Zitat