/** * 获取网络图 * * @param url * @return */ public static BufferedImage downloadImage(String url) throws Exception { log.info("下载网络图片:" + url); byte[] bytes = HttpsUtils.getBytes(url); InputStream buffin = new ByteArrayInputStream(bytes, 0, bytes.length); bytes = null; BufferedImage result = ImageIO.read(buffin); return result; }
/** * 图片水平翻转 * * @param source 图片源 (为优化内存,原图将会关闭。保留最新的指针) * @param flipType 翻转类型(1水平翻转,2垂直翻转)默认为1 * @return */ public static BufferedImage flipImage(BufferedImage source, Integer flipType) { log.info("图片水平翻转-开始。" + flipType); int width = source.getWidth(); int height = source.getHeight(); BufferedImage result = new BufferedImage(width, height, source.getType()); Graphics graphics = result.getGraphics(); try { if (flipType != null && flipType.equals(2)) { graphics.drawImage(source, 0, 0, width, height, 0, height, width, 0, null); } else { graphics.drawImage(source, 0, 0, width, height, width, 0, 0, height, null); } } catch (Exception e) { log.error("图片水平翻转-异常", e); throw new CommonException("图片水平翻转-异常"); } finally { graphics.dispose(); source.flush(); } log.info("图片水平翻转-结束"); return result; }
该方法包括垂直翻转,即flipType参数为2的时候,实现图片的倒放。