java之运用ImageI为图片添加logo水印

该代码示例展示了如何在Java中利用ImageIO和Graphics2D为图片添加logo水印,包括设置水印位置、透明度以及调整logo大小。通过随机函数确定水印坐标,保证每次生成的图片都有不同效果。
摘要由CSDN通过智能技术生成

java为图片添加logo水印

这里使用了ImageIO图像流 技术

public static void main(String[] args) throws IOException {
 logowater(new File("F:/download/logo/baidu.png"),
           new File("F:/download/壁纸/222/599379.jpg"),
           new File("F:/download/tu"));
}
public static void logowater(File logo, File src, File dst) throws IOException {
    //加载图标
    BufferedImage lg = ImageIO.read(logo);
    int lw = lg.getWidth();
    int lh = lg.getHeight();
    //加载图像
    BufferedImage image = ImageIO.read(src);
    int iw = image.getWidth();
    int ih = image.getHeight();
    Random random = new Random();
    Graphics2D g = image.createGraphics();
    //设置线条和文件的,抗锯齿(平滑)
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
    int x = 0;
    int y = 0;
    //左上
    x = 10;
    y = 10;
    //中间
    x = (iw - lw) / 2;
    y = (ih - lh) / 2;
    //随机加位置logo
    x = (random.nextInt(10, iw - lw - 10));
    y = (random.nextInt(10, ih - lh - 10));
    //设置logo的透明度
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .3f));
    //设置logo的位置   还可以调整logo的大小比例  eg:lw+100 那么lh就必须是(lh+(int)(lh*100/lw))这样放置比例失调
    //正常图标
    //g.drawImage(lg,x,y,lw,lh,null);
    //缩小图标
    //g.drawImage(lg,x,y,lw-50,lh-((int)(lh*50)/lw),null);
    //放大图标
    g.drawImage(lg, x, y, lw + 300, lh + ((int) (lh * 300 / lw)), null);
    g.dispose();
    ImageIO.write(image, "png", new File(dst, UUID.randomUUID() + ".png"));
}

原图:

599379
添加放大的logo图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keyila798

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值