如何縮放緩沖圖像在javadocs之后,我嘗試將BufferedImage沒有成功,這是我的代碼:BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded);Graphics2D grph = image.createGraphics();grph.scale(2.0, 2.0);grph.dispose();我不明白它為什么不起作用,有什么幫助嗎?
3 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
BufferedImage?before?=?getBufferedImage(encoded);int?w?=?before.getWidth();int?h?=?before.getHeight();BufferedImage?after?=?new?BufferedImage(w,?h,?BufferedImage.TYPE_INT_ARGB);AffineTransform?at?=?new?AffineTransform();at.scale(2.0,?2.0);AffineTransformOp?scaleOp?=? ???new?AffineTransformOp(at,?AffineTransformOp.TYPE_BILINEAR);after?=?scaleOp.filter(before,?after);

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
不幸的是,getScaledInstance()的性能很差,如果沒有問題的話。
另一種方法是創(chuàng)建一個(gè)新的BufferedImage,并在新的BufferedImage上繪制原始的縮放版本。
BufferedImage?resized?=?new?BufferedImage(newWidth,?newHeight,?original.getType());Graphics2D?g?=?resized.createGraphics();g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, ????RenderingHints.VALUE_INTERPOLATION_BILINEAR);g.drawImage(original,?0,?0,?newWidth,?newHeight,?0,?0,?original.getWidth(), ????original.getHeight(),?null);g.dispose();
newWidth,newHL.8表示新的BufferedImage大小,并且必須正確計(jì)算。在因素比例方面:
int?newWidth?=?new?Double(original.getWidth()?*?widthFactor).intValue();int?newHeight?=?new?Double(original.getHeight()?*?heightFactor).intValue();
添加回答
舉報(bào)
0/150
提交
取消