Path: blob/main/java/java3d/files/patch-ImageComponentState.java
18157 views
work/java3d-1.5.2/j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d1--- j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java.orig2+++ j3d-core-utils/src/classes/share/com/sun/j3d/utils/scenegraph/io/state/javax/media/j3d/ImageComponentState.java3@@ -61,10 +61,7 @@ import com.sun.j3d.utils.scenegraph.io.r4import com.sun.j3d.utils.scenegraph.io.retained.SGIORuntimeException;5import java.awt.color.ColorSpace;6import java.awt.image.DataBuffer;7-import com.sun.image.codec.jpeg.JPEGImageEncoder;8-import com.sun.image.codec.jpeg.JPEGImageDecoder;9-import com.sun.image.codec.jpeg.JPEGCodec;10-import com.sun.image.codec.jpeg.JPEGEncodeParam;11+import javax.imageio.ImageIO;1213public abstract class ImageComponentState extends NodeComponentState {1415@@ -203,10 +200,9 @@ public abstract class ImageComponentStat1617private void writeBufferedImageJpegCompression( DataOutput out, BufferedImage image ) throws IOException {18ByteArrayOutputStream byteStream = new ByteArrayOutputStream();19- JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder( byteStream );20-21- encoder.encode( image );22- byteStream.close();23+ if (!ImageIO.write(image, "jpeg", byteStream)) {24+ throw new AssertionError("No JPEG encoder available");25+ }2627byte[] buffer = byteStream.toByteArray();28out.writeInt( buffer.length );29@@ -261,11 +257,15 @@ public abstract class ImageComponentStat30byte[] buffer = new byte[ size ];31in.readFully( buffer );32ByteArrayInputStream byteStream = new ByteArrayInputStream( buffer );33-34- JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder( byteStream );35- byteStream.close();36-37- return decoder.decodeAsBufferedImage();38+ try {39+ BufferedImage img = ImageIO.read(byteStream);40+ if (img == null) {41+ throw new AssertionError("No ImageReader available.");42+ }43+ return img;44+ } finally {45+ byteStream.close();46+ }47}4849private void writeColorModel( DataOutput out, ColorModel colorModel ) throws IOException {505152