2013-08-14 2 views
0

У меня есть этот метод, который преобразует изображение в массив байтов.Не удается заставить метод работать

public byte[] imageToCompressedByteArray(Image image) throws IOException { 
//load the image 
String f = "C:\\Users\\mamed\\Documents\\NetBeansProjects\\Main\\src\\resources\\accept.png"; 
image = ImageIO.read(new FileInputStream(new File(f))); 


// get image size 
int width = image.getWidth(null); 
int height = image.getHeight(null); 


try { 
    int[] imageSource = new int[width * height]; 
    PixelGrabber pg = new PixelGrabber(image, 0, 0, width, height, imageSource, 0, width); 
    pg.grabPixels(); 


    ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); 
    GZIPOutputStream zippedStream = new GZIPOutputStream(byteStream); 
    ObjectOutputStream objectStream = new ObjectOutputStream(zippedStream); 
    objectStream.writeShort(width); 
    objectStream.writeShort(height); 
    objectStream.writeObject(imageSource); 
    objectStream.flush(); 
    objectStream.close(); 
    return byteStream.toByteArray(); 
} 
catch (Exception e) { 
    throw new IOException("Error storing image in object: " + e); 
} 

}

Однако, я не могу получить эту работу, я имею в виду, он не может загрузить изображение и преобразовать его, и я не иметь представление о том, что проблема может быть ,

+1

Используйте отладчик и попытайтесь выяснить, в какой строке проблема ... открыт ли файл? Правильно ли инициализированы потоки? – giorashc

+0

Нам нужно больше ввода: stacktrace? какая ошибка происходит? как вы можете сказать, что это не работает –

+2

Я действительно сомневаюсь, что сжатие GZIP изображения более эффективно, чем сжатие PNG. Вам лучше оставить свои изображения такими, как есть. –

ответ

0

Вы уверены, что путь изображения правильный, а загруженное изображение не повреждено.

Я не изменил ваш код, и я могу видеть 1778416 byes его чтение из файла изображения.

enter image description here

0

Я не вижу ничего плохого в программе. Возможно, ваш файл изображения поврежден или неправильный путь к изображению.

Смежные вопросы