是否可以为使用以下代码处理的每个图像生成新的图像名称(我已突出显示相关部分)?
public static void makeBinary(File image) {
try{
//Read in original image.
BufferedImage inputImg = ImageIO.read(image);
//Obtain width and height of image.
double image_width = inputImg.getWidth();
double image_height = inputImg.getHeight();
//New images to draw to.
BufferedImage bimg = null;
BufferedImage img = inputImg;
//Draw the new image.
bimg = new BufferedImage((int)image_width, (int)image_height, BufferedImage.TYPE_BYTE_BINARY);
Graphics2D gg = bimg.createGraphics();
gg.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), null);
// ************* THIS IS WHERE I AM HAVING DIFFICULTY ***************
//Save new binary (output) image.
String temp = "_inverted";
File fi = new File("images\\" + temp + ".jpg");
ImageIO.write(bimg, "jpg", fi);
// ******************************************************************
}
catch (Exception e){
System.out.println(e);
}
}
我有300张图片,编号为001.jpg
- 300.jpg
,我想要的是每个新输出的图片都被命名为binary_001.jpg
- {{1 }}
调用binary_300.jpg
的方法位于另一个类中,并且是:
makeBinary()
我怎样才能实现这个目标?
非常感谢。
答案 0 :(得分:1)
从File image
参数中获取文件名并将其添加到新文件名中:
String temp = image.getName() + "_inverted";
File fi = new File("images\\" + temp + ".jpg");
ImageIO.write(bimg, "jpg", fi);
答案 1 :(得分:1)
您可以将原始图像中的名称连接起来(在您使用字符串“_inverted”传递给ImageIO的代码“图像”中,这样您就可以为每个处理的图像创建原始名称:image.jpg - > image_inverted .JPG
答案 2 :(得分:1)
File fi = new File("images\\" + "binary_" + image.getName());
应该做的伎俩。
甚至更好:
File fi = new File(image.getParent(), "binary_" + image.getName());