2017-09-03 1 views
0

Ich versuche, zwei Bilder mit Java zu verbinden. Also habe ich versucht, auf einem anderen gepufferte Bild einer gepufferten Bildzeichnungs es funktionierte, aber es ruiniert die Farben des Bildes das endgültige Bild etwas grün ist Hier ist mein Code:Zeichnung gepuffertes Bild auf einem anderen?

try 
{ 
BufferedImage source = ImageIO.read(new File("marker.png")); 
BufferedImage logo = ImageIO.read(new File("pic.png")); 

Graphics2D g = (Graphics2D) source.getGraphics(); 
g.drawImage(logo, 20, 50, null); 
File outputfile = new File("image.jpg"); 
ImageIO.write(source, "jpg", outputfile); 
} 
catch (Exception e) 
{ 
e.printStackTrace(); 
} 

Antwort

1

jpg konnte Chaos mit Ihren Daten während der Kompression - Sie könnten Png als Ausgabeformat versuchen.

Um sicherzustellen, dass Sie alle Farben haben, die Sie benötigen, empfehle ich, ein dediziertes Zielbild mit der gewünschten Farbtiefe zu verwenden, anstatt eines der Quellbilder zu überschreiben. So:

BufferedImage target = new BufferedImage(source.getWidth(), source.getHeight(), BufferedImage.TYPE_INT_ARGB); 
Graphics2D g = (Graphics2D) target.getGraphics(); 
g.drawImage(source, 0, 0, null); 
g.drawImage(logo, 20, 50, null); 
File outputfile = new File("targetimage.png"); 
ImageIO.write(target, "png", outputfile);