В моем приложении JavaFx есть несколько мест, где я вставляю изображения (png / gif).Обычно это работает с одним исключением.Что я делаю:
Альтернатива, которая также работает:
InputStream resourceAsStream = classParameter.getResourceAsStream("/pics/logo.png");
Image image = new Image(resourceAsStream);
ImageView openView = new ImageView(image);
Проблема: существует один gif с белымфон.Когда я вставляю его в приложение, оно работает, но если я вставляю тот же gif после его преобразования (чтобы добавить прозрачность для фона), я получаю:
ObjectProperty [bean: javafx.scene.image.Image@2ac5919d, name: exception, value: java.lang.ArrayIndexOutOfBoundsException: 4096]
Если я открою его для просмотра, преобразованный gifотображается как и ожидалось.
Есть идеи, почему выбрасывается это исключение?
Трассировка стека:
java.lang.ArrayIndexOutOfBoundsException: 4096
at com.sun.javafx.iio.gif.GIFImageLoader2$LZWDecoder.readString(GIFImageLoader2.java:388)
at com.sun.javafx.iio.gif.GIFImageLoader2.decodeImage(GIFImageLoader2.java:148)
at com.sun.javafx.iio.gif.GIFImageLoader2.load(GIFImageLoader2.java:209)
at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:368)
at com.sun.javafx.iio.ImageStorage.loadAll(ImageStorage.java:328)
at com.sun.javafx.tk.quantum.PrismImageLoader2.loadAll(PrismImageLoader2.java:119)
at com.sun.javafx.tk.quantum.PrismImageLoader2.<init>(PrismImageLoader2.java:70)
at com.sun.javafx.tk.quantum.QuantumToolkit.loadImage(QuantumToolkit.java:648)
at javafx.scene.image.Image.loadImage(Image.java:1036)
at javafx.scene.image.Image.initialize(Image.java:785)
at javafx.scene.image.Image.<init>(Image.java:599)
at javafx.scene.image.ImageView.<init>(ImageView.java:167)
at helpers.Helpers.setImageView(Helpers.java:173)