用Java打印图片上的字符串

use*_*234 5 java

我想在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);
Run Code Online (Sandbox Code Playgroud)

Jk1*_*Jk1 6

使用INT_RGB而不是INT_ARGB,你会没事的:

  BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Run Code Online (Sandbox Code Playgroud)