2013-08-31 7 views
6

Javaの既存の画像に文字列を書きたいと思います。写真は.jpg形式です。私は以下のコードを使用しましたが、唯一の問題は、最終的なイメージに赤い影があります。イメージが真の色を失ったようなもので、淡い赤です。この問題を解決するために私を助けてください。Javaの画像に文字列を印刷する

BufferedImage img = ImageIO.read(new File("pic1.jpg")); 
    int width = img.getWidth(); 
    int height = img.getHeight(); 
    BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 
    Graphics2D g2d = bufferedImage.createGraphics(); 
    Font font = new Font("Serif", Font.PLAIN, 96); 
    g2d.setFont(font); 
    g2d.drawImage(img, 0, 0, null); 
    g2d.drawString(text, 100, 250); 
    g2d.dispose(); 

    File file = new File("newimage.jpg"); 

    ImageIO.write(bufferedImage, "jpg", file); 

答えて

6

代わりINT_ARGBの使用INT_RGB、あなたは大丈夫:

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
+0

どうもありがとうございました。それは完璧に働いた! – user2626234