java - 更改与整数对应的输出文件的名称

标签 java eclipse file io

所以,我目前正在用java制作一个程序,但我想制作该程序,以便它更改与我的类中的整数相对应的文件输出名称:

if(height > 10){

这是我的整个代码

import java.awt.*;

public class imageReader {
    private BufferedImage img, imageOut;
    private int imageHeight, imageWidth;
    private int deepbkg;
    public imageReader() {

        initializeSet();
        readImage();
        ProcessImage();
        createOutImage();
        saveProcFile(); 
    }

    public static void main(String[] args) {
        @SuppressWarnings("unused")
        imageReader iR= new imageReader();
    }

    public void initializeSet() {
        Color cold = new Color(250, 100, 200);
        deepbkg = cold.getRGB();
    }

    public  void readImage(){
        try{
            img = ImageIO.read(new File("C:\\Users\\David_tmp\\Desktop\\ProjectImages\\LongIslandforPrint.jpg"));
        }
        catch (IOException e) {         
        }
    }

    public void ProcessImage(){
        imageHeight = img.getHeight();
        imageWidth = img.getWidth();
        System.out.println(imageHeight+ "  "+imageWidth );
    }

    public void createOutImage(){
        imageOut = new BufferedImage(imageWidth, imageHeight, 1);
        for (int imageX = 0; imageX < imageWidth; imageX++) {
            for (int imageY = 0; imageY < imageHeight; imageY++){
                int redbluevalue = img.getRGB(imageX, imageY);
                double height = getHeight(redbluevalue);
                // *****IMAGE HEIGHT****
                if(height > 10){
                    //***END OF HEIGHT****  

                    imageOut.setRGB(imageX, imageY, redbluevalue);
                }
                else{
                    imageOut.setRGB(imageX, imageY, deepbkg);   
                }
            }
        }
    }

    public void saveProcFile() {
        try {
            File outputfile = new      File("C:\\Users\\David_tmp\\Desktop\\ProjectImages\\LongIslandforrrrPrint.jpg");
            ImageIO.write(imageOut, "jpg", outputfile);
        }
        catch(IOException e) {
        }
    }

    public double getHeight(int RGB) {
        double heightX =0.;
        Color tcol = new Color(RGB);
        int Red = tcol.getRed();
        int Blue = tcol.getBlue();
        int Green = tcol.getGreen();
        if( Red >248) {
            heightX = 81.+ 99 * ((double)Red/250.);
        }
        if( Red <= 7 ) {
            if(Green >= 249 ) // using blue  value to calculate height
                 // range 23 -81
            {
                heightX = 23. + 58. *((double)255 - Blue)/255.;
            }
            else               //using green to calculate height
            {
                heightX =   24.* ((double)Green-20.)/230.;  
            }
        }
        return heightX;
    }
}

所以我想要

LongIslandforrrrPrint.jpg

要更改此处的整数:

 if(height > 10){

因此文件输出将根据整数发生变化

所以文件名输出会是这样的

Heightmap[Integer].jpg

最佳答案

类似这样的吗?

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class imageReader {
private BufferedImage img, imageOut;
private int imageHeight, imageWidth;
private int deepbkg;
public imageReader() {

    initializeSet();
    readImage();
    ProcessImage();
    createOutImage();
    saveProcFile(); 
 }


public static void main(String[] args) {
@SuppressWarnings("unused")
imageReader iR= new imageReader();
}
 public void initializeSet() {

Color cold = new Color(250, 100, 200);
deepbkg = cold.getRGB();
}
public  void readImage(){
try{
    img =
        ImageIO.read(new File("C:\\Users\\David_tmp\\Desktop\\ProjectImages\\LongIslandforPrint.jpg"));
}
catch (IOException e) {         
}
}
public void ProcessImage(){
imageHeight = img.getHeight();
imageWidth = img.getWidth();
System.out.println(imageHeight+ "  "+imageWidth );
}

public double myNum = 0;
public void createOutImage(){
    imageOut = new BufferedImage(imageWidth, imageHeight, 1);
    for (int imageX = 0; imageX < imageWidth; imageX++) {
        for (int imageY = 0; imageY < imageHeight; imageY++){
            int redbluevalue = img.getRGB(imageX, imageY);
            double height = getHeight(redbluevalue);
            // *****IMAGE HEIGHT****
            if(height > 10){
            //***END OF HEIGHT****  
                myNum = height;
                imageOut.setRGB(imageX, imageY, redbluevalue);
            }
            else{
                myNum = height;
                imageOut.setRGB(imageX, imageY, deepbkg);   
            }
        }
    }
}

public void saveProcFile(){
 try{
    File outputfile = new      File("C:\\Users\\David_tmp\\Desktop\\ProjectImages\\Heightmap["+ myNum + "].jpg");
    ImageIO.write(imageOut, "jpg", outputfile);
}
catch(IOException e) {
}
}   
public double getHeight(int RGB){
double heightX =0.;
Color tcol = new Color(RGB);
int Red = tcol.getRed();
int Blue = tcol.getBlue();
int Green = tcol.getGreen();
if( Red >248) {
heightX = 81.+ 99 * ((double)Red/250.);
}
if( Red <= 7 ){
if(Green >= 249 ) // using blue  value to calculate height
                 // range 23 -81
{
 heightX = 23. + 58. *((double)255 - Blue)/255.;
}
 else               //using green to calculate height
{  
heightX =   24.* ((double)Green-20.)/230.;  
} 
}
  return heightX;
}
}

关于java - 更改与整数对应的输出文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40031424/

相关文章:

java - 我可以对多个测试类使用相同的参数化数据吗

java - 对文件系统中的文件夹执行命令

java - 声明 editText java 时未使用局部变量

java - Ubuntu 12.04 中 localhost 文件夹的位置

javascript - 文件上传总数

java - 使用@OneToMany 和@ManyToMany 的区别

java - primefaces 试图添加 p :message for validation errors and p:growl for success messages

java - 如何使用 JFileChooser 保存 txt 文件?

java - 由一个 EDT 处理两个 GUI 框架

Git 日志输出到 XML、JSON 或 YAML?