Страницы

Поиск по вопросам

среда, 12 февраля 2020 г.

Загрузка изображения в буфер

#java #изображения


Помогите найти ошибку

package com.example.test;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public class LoadImage {

          /**  подгружаем картику    */

     public static BufferedImage loadImage() throws IOException{

         return ImageIO.read(new File ("1.bmp"));


    }
      /**  Переводим в матрицу   */
    public static void  convertToMatrix(BufferedImage image){

        int w = image.getWidth();
        int h = image.getHeight();

        System.out.println(w);
        System.out.println(h);

    }

}




package com.example.test;
public static void main(String[] args) {
 try {
        LoadImage.convertToMatrix(LoadImage.loadImage());
    } catch (Throwable e) {
        e.printStackTrace();
    }


}


Вот код ошибки:

javax.imageio.IIOException: Can't read input file!
    at javax.imageio.ImageIO.read(ImageIO.java:1301)
    at com.example.test.LoadImage.loadImage(LoadImage.java:16)
    at com.example.test.Test.main(Test.java:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Process finished with exit code 0


Я так понимаю, оно не видит картинку?
    


Ответы

Ответ 1



Вам же всё написал компилятор. IOException - проверяемое исключение. Вы обязаны либо обернуть его в try/catch либо дописать в функцию throws Exception. В данном примере 2 вариант не походит, поэтому пишите как-то так: public static void main(String[] args) { try { LoadImage.convertToMatrix(LoadImage.loadImage()); } catch (Throwable e){ e.printStackTrace(); } }

Ответ 2



В дополнение к предыдущему ответу. IDE - это штука, не только помогающая писать код. Она ещё и обучает, и в режиме реального времени отвечает на вопросы уровня того, что был задан в первой редакции. Например, так: Вы можете самостоятельно попробовать оба варианта исправления, посмотреть как они делаются (код будет сгенерирован автоматически) и к чему приведут. javax.imageio.IIOException: Can't read input file! Я так понимаю, оно не видит картинку? Сложно как-то по-другому интерпретировать это сообщение...

Комментариев нет:

Отправить комментарий