加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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;    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读