2017-09-03 12 views
0

javaを使用して2つの画像をまとめようとしています。だから私はそれが働いていたが、それは最終的な画像がここ やや緑で画像の色を台無しにし、別のバッファリングされた画像の上にバッファリングされたイメージを描画しようとした私のコードは次のとおりです。バッファリングされたイメージを別のイメージに描画しますか?

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(); 
} 

答えて

1

JPGは、圧縮時に、あなたのデータを台無し可能性 - 出力形式としてpngを試すことができます。

必要な色がすべてあることを確認するには、ソースイメージを上書きするのではなく、必要な色深度の専用ターゲットイメージを使用することをお勧めします。このように:

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); 
関連する問題