com.sun.image.codec の置き換え
com.sun.image.codec は今後使えなくなるかもしれないので,ImageIO で置き換えた方がいいらしい。
警告:com.sun.image.codec.jpeg.JPEGCodec は Sun が所有する API であり、今後のリリースで削除される可能性があります。 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(writer);
client/KarteEditor.java
/** * Courtesy of Junzo SATO * ImageIO by pns */ private byte[] getJPEGByte(Image image) { byte[] ret = null; // BufferedOutputStream writer = null; try { JPanel myPanel = getUI(); Dimension d = new Dimension(image.getWidth(myPanel), image.getHeight(myPanel)); BufferedImage bf = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_RGB); Graphics g = bf.getGraphics(); g.setColor(Color.white); g.drawImage(image, 0, 0, d.width, d.height, myPanel); ByteArrayOutputStream bo = new ByteArrayOutputStream(); // writer = new BufferedOutputStream(bo); // JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(writer); // encoder.encode(bf); ImageIO.write(bf, "jpeg", bo); // writer.flush(); // writer.close(); ret = bo.toByteArray(); } catch (IOException e) { e.printStackTrace(); // if (writer != null) { // try { // writer.close(); // } catch (IOException e2) { // System.out.println("KarteEditor.java: "+ e2); // } // } } return ret; }
"jpeg" を "png" に変えると,png 形式で保存されるようになる。保存した画像の読み出しは byte[] を ImageIcon に入れているだけなので(DocumentDelegater#getDocuments 参照),java 側で jpeg か png か判断してくれる。
« ORCL0030CheckServer | トップページ | 最近3ヶ月の来院歴表示 »
「OpenDolphin」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)