Я хочу преобразовать массив байтов из JPEG в Java. Ниже код делает неправильный мой запрос.Преобразование в байты из jpeg в java
BufferedImage img=Image.read("C:\blabla");
WritableRaster raster=img.getRaster();
DataBufferByte buffer=(DataBufferByte)raster.getDataBuffer();
byte[] jpegbytes=buffer.getData();
Когда я выполняю это, вы получаете неправильный номер байта. JPEG имеет размер 845,941 байт на диске. Но он возвращает размер 2 359 296 байт в jpegbytes
. Как я могу исправить значение байта? Я думаю, BufferedImage
класс получает неправду.
Jpegs - сжатые данные. Если вы считаете, что jpeg является «правильным размером», получите размер файла и не читайте изображение в «BufferedImage». – fabian
Какой класс 'Image' вы используете? Я не вижу никакого метода 'read' в [JDK] (https://docs.oracle.com/javase/8/docs/api/java/awt/Image.html) – 4castle
@ 4castle класс является' javax .imageio.ImageIO', я думаю, OP сделал опечатку. – Sam