JAVA 通过URL生成水印图
发布时间:2020-12-15 05:31:19 所属栏目:Java 来源:网络整理
导读:@Override public OutputStream watermark1(String ossURL,String logoOsskey,HttpServletResponse response) { lock.lock(); OutputStream os = null; InputStream imageStream=null; //水印 String logoPath = ossService.getOssURL(logoOsskey,bucket); /
@Override public OutputStream watermark1(String ossURL,String logoOsskey,HttpServletResponse response) { lock.lock(); OutputStream os = null; InputStream imageStream=null; //水印 String logoPath = ossService.getOssURL(logoOsskey,bucket); //原图ossURL try { os=response.getOutputStream(); imageStream = getImageStream(ossURL); Image image2 = ImageIO.read(imageStream); //获取原图信息 int width = image2.getWidth(null); int height = image2.getHeight(null); BufferedImage bufferedImage = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR); Graphics2D g = bufferedImage.createGraphics(); g.drawImage(image2,width,null);// //设置多个图片水印 InputStream logo = getImageStream(logoPath); Image imageLogo = ImageIO.read(logo); int logoWidth = imageLogo.getWidth(null); int logoHeight = imageLogo.getHeight(null); //设置透明度,ALPHA为接口中自定义的值透明度 0.3F g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA)); //完成图片旋转30 g.rotate(Math.toRadians(0),bufferedImage.getWidth() / 2,bufferedImage.getHeight() / 2); int x = -width / 2; int y = -height / 2; while (x < width * 1.5) { y = -height / 2; while (y < height * 1.5) { g.drawImage(imageLogo,x,y,null); y += logoHeight + 200; } x += logoHeight + 300; } g.dispose(); Thumbnails.Builder thumbnail = Thumbnails.of(bufferedImage); thumbnail.size(x,y); ImageIO.write(thumbnail.asBufferedImage(),"png",os); //JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os); //en.encode(bufferedImage); } catch (IOException e) { e.printStackTrace(); } finally { if (os != null) { try { os.flush(); os.close(); } catch (IOException e) { e.printStackTrace(); } } if(imageStream!=null){ try { imageStream.close(); }catch (IOException e){ e.printStackTrace(); } } } lock.unlock(); return os; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |