Java - 为新的BufferedImage文件生成新文件名

时间:2012-02-02 12:25:56

标签: java image-processing

是否可以为使用以下代码处理的每个图像生成新的图像名称(我已突出显示相关部分)?

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()

我怎样才能实现这个目标?

非常感谢。

3 个答案:

答案 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());