5

Javaで既存の画像に文字列を書きたいです。写真は.jpg形式です。以下のコードを使用しましたが、唯一の問題は、最終的な画像に赤い色合いがあることです..画像のようなものは本来の色を失い、明るい赤です. この問題を解決するのを手伝ってください。

    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);
4

2 に答える 2

6

INT_ARGB の代わりに INT_RGB を使用すると問題ありません。

  BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
于 2013-08-31T08:48:30.377 に答える