Konwertuj i wyświetlaj obraz z tablicy bajtów
Tworzę program, który pobiera dane o obrazie w tablicy bajtów z serwera. Konwertuję te dane na format 24-bitowy BMP (czy to jpeg, png, bmp lub 8-24-32bpp). Najpierw zapisuję go w moim HD, a następnie ładuję do ikony JLabel. Działa doskonale, choć są przypadki, w których otrzymuję następujący wyjątek:
java.io.EOFException at
javax.imageio.stream.ImageInputStreamImpl.readFully(ImageInputStreamImpl.java:353) at
com.sun.imageio.plugins.bmp.BMPImageReader.read24Bit(BMPImageReader.java:1188) at
com.sun.imageio.plugins.bmp.BMPImageReader.read(BMPImageReader.java:843) at
javax.imageio.ImageIO.read(ImageIO.java:1448) at
javax.imageio.ImageIO.read(ImageIO.java:1308)
Dla tej linii (druga)
File imgFile = new File("d:/image.bmp");
BufferedImage image = ImageIO.read(imgFile);
W tych przypadkach:
obraz nie ładuje się do JLabel, ale można go znaleźć na moim HDnawrócenie nie jest właściwe, ponieważ coś „wymyka się”obraz jest podobny do kursywy w dokumencie słownymPo pierwsze, pomyślałem, że może bpp jest problemem, wtedy pomyślałem, że może obrazy są zbyt duże, ale mam przypadki, w których działa i przypadki, których nie dotyczą obu sugestii. Jestem tu trochę utknięty i byłbym zadowolony z pomysłów.