[英]Printing String on a picture in 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);
使用 INT_RGB 而不是 INT_ARGB 你會沒事的:
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
像這樣寫代碼。 不需要使用 BufferedImage 類來獲取圖像圖形對象。 這只會做你想做的。
BufferedImage img = ImageIO.read(new File("pic1.jpg"));
int width = img.getWidth();
int height = img.getHeight();
Graphics g = img.getGraphics();
Font font = new Font("Serif", Font.PLAIN, 96);
g.setFont(font);
g.setColor(Color.WHITE);
g.drawString(text, 100, 250);
g.dispose();
File file = new File("newimage.jpg");
ImageIO.write(bufferedImage, "jpg", file);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.