[英]Drawing text on image not working with Graphics2D
我想在圖像上寫一些文字時遇到了一些問題。 正如我所看到的,可以使用以下代碼完成:
package asd;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class ImageAddingText {
public static void main(String args[]) throws IOException {
BufferedImage image = ImageIO.read(new File("C:\\Users\\Slobodan\\Desktop\\image2.png"));
Font font = new Font("Arial", Font.BOLD, 20);
Graphics g = image.getGraphics();
g.setFont(font);
g.setColor(Color.GREEN);
g.drawString("Medium", 50, 50);
System.out.println("Finished");
System.out.println(image.getWidth());
}
}
因此圖像被加載到 memory 中,image.getGraphics() 創建 Graphics2D object,然后設置字體、顏色和繪制字符串。 但是在圖像中沒有任何反應,它仍然完全保持不變。 圖像是黑白的,白色占據了大部分空間。我試圖改變colors,圖像的擴展,似乎沒有任何幫助。 我期待我可以直接在圖像上看到變化,我認為它應該以這種方式工作。 在它運行和編譯之后,根本沒有錯誤消息。 我正在使用 Java 8 和 Spring 引導。 (雖然我只運行 Java)
有誰可能知道那里可能是什么問題?
非常感謝您的閱讀。
同樣,您的代碼適用於我,使用在線圖片:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
public class ImageAddingText {
public static void main(String args[]) throws IOException {
String imgUrl = "https://media.glamour.com/photos/5a425fd3b6bcee68da9f86f8/16:9/w_2560%2Cc_limit/best-face-oil.png";
// BufferedImage image = ImageIO.read(new File("C:\\Users\\Slobodan\\Desktop\\image2.png"));
URL url = new URL(imgUrl);
BufferedImage image = ImageIO.read(url);
// display the original image
Icon icon = new ImageIcon(image);
JOptionPane.showMessageDialog(null, icon);
Font font = new Font("Arial", Font.BOLD, 20);
Graphics g = image.getGraphics();
g.setFont(font);
g.setColor(Color.GREEN);
g.drawString("Medium", 50, 50);
g.dispose(); // you should always dispose resources *you* create yourself
// display the changed image
icon = new ImageIcon(image);
JOptionPane.showMessageDialog(null, icon);
System.out.println("Finished");
System.out.println(image.getWidth());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.