我在将byte []转换为BufferedImage方面遇到了问题。我知道有很多帖子和问题 - 答案,但我只能看看为什么我的代码是错误的。 (错误:线程中的异常" main" java.lang.IllegalArgumentException:image == null!)
谢谢!
try {
String hex = "57656c636f6d652c206d7920667269656e642e";
byte[] im = DatatypeConverter.parseHexBinary(hex);
InputStream in = new ByteArrayInputStream(im);
BufferedImage bImageFromConvert = ImageIO.read(in);
ImageIO.write(bImageFromConvert, "jpg", new File("c:/welcome.jpg"));
} catch (Exception ex) {
}
答案 0 :(得分:0)
如果我理解正确,您只需要使用
File newfile = new File("c:/welcome.jpg");
newfile.exists();
检查newfile是否存在。
答案 1 :(得分:0)
行。我做了什么滑溜溜告诉和工作。谢谢。代码如下。
try {
Font font = new Font("Arial", 0, 32);
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
FontMetrics fm = img.getGraphics().getFontMetrics(font);
int width = fm.stringWidth("Welcome, my friend.");
int height = fm.getHeight();
int padding = 7;
BufferedImage bgImage = new BufferedImage(width+padding*2, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D drawer = bgImage.createGraphics() ;
drawer.setBackground(Color.white);
drawer.clearRect(0,0,(int)width+padding*2,(int)height);
drawer.setColor(Color.black);
drawer.setFont(font);
drawer.drawString("Welcome, my friend.", padding, height-padding);
ImageIO.write(bgImage, "png", new File("c:/welcome.png"));
} catch (IOException e) {
System.out.println(e.getMessage());
}
该代码有问题吗?就像不好的做法一样......