Ich muss zwei Bilder (BufferedImage) in Java zusammenführen. Es wäre kein Problem, wenn es keine Transparenz gäbe. Das Basisbild hat bereits eine gewisse Transparenz. Ich möchte das so lassen wie es ist und eine "Maske" darauf anwenden, das zweite Bild. Dieses zweite Bild hat keine undurchsichtigen Pixel, tatsächlich ist es fast vollständig transparent, es hat nur einige weniger transparente Pixel, um eine Art "Lichteffekt" wie einen Reflex zu erzeugen. Wichtiges Detail: Ich möchte dies nicht auf dem Bildschirm tun. Bei Grafiken muss ein BufferedImage mit der resultierenden Zusammenführung abgerufen werden.
Kann mir jemand helfen? Vielen Dank!
DETAILS: Führen Sie zwei Bilder zusammen, um die Transparenz zu gewährleisten. Das muss ich tun.
Hinweis: Diese Set BufferedImage-Alphamaske in Java macht nicht das, was ich brauche, da sie mit den beiden Bildern mit Transparenz nicht gut zurechtkommt - sie ändert die Transparenz des ersten Bildes.
quelle
Ich kann Ihnen keine konkrete Antwort geben, aber java.awt.AlphaComposite hier ist Ihr Freund. Sie haben die absolute Kontrolle darüber, wie die beiden Bilder zusammengeführt werden sollen. Die Verwendung ist jedoch nicht einfach - Sie müssen zuerst ein wenig Grafiktheorie lernen.
quelle
Ohne mehr über den Effekt zu wissen, den Sie erzielen möchten, möchte ich Sie nur darauf hinweisen, dass Sie auch direkt auf ein BufferedImage zurückgreifen können. Alles, was Sie auf dem Bildschirm tun können, können Sie direkt auf dem Bild selbst tun.
Wenn Sie also nur eines übereinander zeichnen möchten, ist das ganz einfach. Nehmen Sie einfach das Grafikobjekt für das Basisbild und zeichnen Sie das andere darauf.
Abhängig vom genauen Effekt, den Sie erzielen möchten, funktioniert dies möglicherweise nicht. Mehr Details würden eine bessere Hilfe ermöglichen. Ist dies beispielsweise ein Job für AlphaComposite, wie der andere Responder erwähnt, oder ein benutzerdefiniertes ImageOp (oder eine Kombination vorhandener ImageOps).
quelle
Führen Sie jeden Dateityp vertikal zusammen.
quelle