png auf ein jpeg legen
-
Hallo, ich habe ein jpg und ein png und möchte jetzt irgendwie das png über das jpg legen. Habe aber so langsam keine Idee mehr was ich ausprobieren könnte.
TPngImage *png = new TPngImage(); TJPEGImage *jpg = new TJPEGImage(); jpg->LoadFromFile("D:tmp\\tmpsourcepic.jpg"); png->LoadFromFile("D:masks\\tmpmask.png"); jpg->Assign(png);Mit dem assign klappt es natürlich nicht, aber ich habe es schon über bmp und sonstwas probiert, ich krieg es einfach nicht hin.
Wäre super wenn mir wer helfen kann

-
Nee, so wird das natürlich nichts.
Du mußt die beiden Bilder übereinander zeichnen, z.B. in einem TImage und danach kannst du das Bild wieder abspeichern.
Sind denn beide Bilder gleich groß? Und hat das PNG-Bild eine (Alpha-)Transparenz?
-
Beide Bilder sind gleich groß und die png hat auch Alpha-Transparenz.
Aber wie zeichne ich beide übereinander?
-
Im Normalfall ermittelt man mittels ScanLine die einzelnen Farbwerte und manipuliert diese dann,
zB.RGB((r1 + r2)/2 , (g1 + g2)/2, (b1 + b2)/2); // einzelnes Pixelstellt im Endbild beide Grafiken dar.
Wichtig ist die Kenntnis des Pixelformates der Ausgangsgrafiken bzw. bei der PNG der ColorType.
Wenn du schon mit normalen Bitmaps in der o.g. Weise gearbeitet haben solltest, dürfte das kein grosses Problem sein.