내가 가진 것은 이미지 프로세서 역할을하는 코드입니다. 이 코드에는 많은 메소드가 있지만 내가 알고 싶은 것은 어떻게 메소드를 호출하여 사용자가 java imageprocessor를 입력하는 대신 CMD에서 프로그램을 실행할 때 대신 java -imageprocessor -ascii image를 입력하는 것이다. jpg image.txt. 이것이 의미하는 바는 프로그램이 해당 이미지를 읽고 image.txt라는 파일에 저장하는 ASCII 버전을 생성한다는 것입니다. 메소드를 호출하려면 사용자가 writeGrayscaleImage 메소드를 호출하는 -writeGrayscaleImage와 같이 입력하십시오. 그렇다면 사용자가 메서드를 호출 할 수 있도록 구현하는 방법은 무엇입니까?이 Java 프로그램에서 메소드를 호출하려면 어떻게해야합니까?
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class ImageProcessor {
public static int[][] readGrayscaleImage(String filename) {
int [][] result = null; //create the array
try {
File imageFile = new File(filename); //create the file
BufferedImage image = ImageIO.read(imageFile);
int height = image.getHeight();
int width = image.getWidth();
result = new int[height][width]; //read each pixel value
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
int rgb = image.getRGB(x, y);
result[y][x] = rgb & 0xff;
}
}
}
catch (IOException ioe) {
System.err.println("Problems reading file named " + filename);
System.exit(-1);
}
return result;
}
public static void writeGrayscaleImage(String filename, int[][] array) {
int width = array[0].length;
int height = array.length;
try {
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); //create the image
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
int rgb = array[y][x];
rgb |= rgb << 8;
rgb |= rgb << 16;
image.setRGB(x, y, rgb);
}
}
File imageFile = new File(filename);
ImageIO.write(image, "jpg", imageFile);
}
catch (IOException ioe) {
System.err.println("Problems writing file named " + filename);
System.exit(-1);
}
}
}
와 메소드를 호출한다 : 당신은 쉽게 단지 형식에 따라, 새로운 방법을 추가 할 수 있습니다 당신의 목표를 달성하기까지 그리고 왜 그것이 효과가 없습니까? –
가능한 복제 [정적 메서드/필드 호출] (0120) (영문) –