• Java图片处理(二)图片加水印


    图片加水印,是通过图片重叠绘制实现的。实现代码如下:
    public static void press(String pressImg, String pressText, String targetImg,
    String fontName, int fontStyle, int color, int fontSize, int x, int y) {
    try {
    File _file = new File(targetImg);
    Image src = ImageIO.read(_file);
    int wideth = src.getWidth(null);
    int height = src.getHeight(null);
    BufferedImage image = new BufferedImage(wideth, height,
    BufferedImage.TYPE_INT_RGB);
    Graphics2D g = image.createGraphics();
    g.drawImage(src, 0, 0, wideth, height, null);
    g.setColor(new Color(255, 255, 255, 80));
    g.setFont(new Font(fontName, fontStyle, fontSize));
     
    g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - y);
     
    //水印文件
    File _filebiao = new File(pressImg);
    Image src_biao = ImageIO.read(_filebiao);
     
    int wideth_biao = src_biao.getWidth(null);
    int height_biao = src_biao.getHeight(null);
     
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
     
    g.drawImage(src_biao, (wideth - wideth_biao) / 2,
    height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
     
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
     
    g.dispose();
    FileOutputStream out = new FileOutputStream(targetImg);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    encoder.encode(image);
    out.close();
    } catch (Exception e) {
    System.out.println(e);
    }
    }
     
    图片设置透明度
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.4f));
     
    g.drawImage(src_biao, (wideth - wideth_biao) / 2,
    height - fontSize / 2 - 50, wideth_biao/2-10, height_biao/2-10, null);
     
    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
     
    文字设置透明度
    文字的透明度由颜色决定,因此只需要设置颜色的RGBA即可。如下:
    Graphics2D g = image.createGraphics();
    g.drawImage(src, 0, 0, wideth, height, null);
    g.setColor(new Color(255, 255, 255, 80));
    g.setFont(new Font(fontName, fontStyle, fontSize));
     
    g.drawString(pressText, wideth - fontSize - x, height - fontSize/ 2 - y);
  • 相关阅读:
    go_base_03_if_for_switch_goto_流程控制
    go_base_02_dataType_常用数据类型
    go_base_01_var_const_变量和常量
    go_install_01_golang开发环境安装配置
    go_install_02_golang插件安装
    数据封装和私有属性
    类变量 实例变量 属性查找顺序
    微服务架构之「 服务注册 」
    Nginx配置https证书
    Go:go程序报错Cannot run program "C:UsersdellAppDataLocalTemp\___go_build_hello_go.exe" (in directory "…………"):该版本的 %1 与你运行的 Windows 版本不兼容。
  • 原文地址:https://www.cnblogs.com/asfeixue/p/4505408.html
Copyright © 2020-2023  润新知