Как загрузить изображение в консольное приложение Java?(без апплета) - PullRequest
3 голосов
/ 23 мая 2011

Я создаю консольное приложение Java, которое выводит серию файлов изображений, и я хочу нарисовать файл изображения как часть вывода. Кажется, что getImage не работает, ему нужен инструментарий или что-то в этом роде.

Image cover = getImage("cover.png");

Есть идеи?

Редактировать: Программа не отображает изображения, она генерирует их и сохраняет их в серии файлов. Я понял, как сохранять изображения, и рисовать базовую геометрию, но не изображения по какой-либо причине.

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

Другим способом работы с различными форматами изображений является класс ImageIO. В следующем примере jpg преобразуется в png и рисует крест.

public class ImageReaderExample {

    public static void main(String[] args) {
     try{
          BufferedImage image = ImageIO.read(new File("/tmp/input.jpg"));

          image.getGraphics().drawLine(1, 1, image.getWidth()-1, image.getHeight()-1);
          image.getGraphics().drawLine(1, image.getHeight()-1, image.getWidth()-1, 1);

          ImageIO.write(image, "png", new File("/tmp/output.png"));
     }
     catch (IOException e){
         e.printStackTrace();
     }
    }
}
1 голос
/ 23 мая 2011

Если вы на самом деле не пытаетесь нарисовать изображение, а просто пытаетесь использовать классы awt, вам нужно указать awt работать в автономном режиме, установив системное свойство java.awt.headless.Вы можете сделать это в своей программе до загрузки awt:

System.setProperty("java.awt.headless", "true"); 

или установив свойство в командной строке при запуске вашей программы:

java -Djava.awt.headless=true Program
0 голосов
/ 23 мая 2011

Где вы хотите это нарисовать? Видя, что вам нужен какой-то вывод, это может помочь, предполагая bmps (но объяснены другие форматы):

http://java.sun.com/products/java-media/jai/forDevelopers/jai1_0_1guide-unc/Encode.doc.html

 // Define the source and destination file names.
 String inputFile = /images/FarmHouse.tif
 String outputFile = /images/FarmHouse.bmp

 // Load the input image.
 RenderedOp src = JAI.create("fileload", inputFile);

 // Encode the file as a BMP image.
 FileOutputStream stream =
     new FileOutputStream(outputFile);
 JAI.create("encode", src, stream, BMP, null);

 // Store the image in the BMP format.
 JAI.create("filestore", src, outputFile, BMP, null);

Чтение и запись файла Bmp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...