• 水印图片,文字


    package com.freeter.util;

    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;

    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;

    public final class ShuiYinUtils
    {
    public ImageUtils() {

    }

    /*
    * public final static String getPressImgPath() { return ApplicationContext
    * .getRealPath("/util/shuiyin.png"); }
    */

    /**
    * 把图片印刷到图片上
    *
    * @param pressImg --
    * 水印文件
    * @param targetImg --
    * 目标文件
    * @param x
    * --x坐标
    * @param y
    * --y坐标
    */
    public final static void pressImage(String pressImg, String targetImg,
    int x, int y) {
    try {
    //目标文件
    File _file = new File(targetImg);
    Image src = ImageIO.read(_file);
    int width = src.getWidth(null);
    int height = src.getHeight(null);
    BufferedImage image = new BufferedImage(width, height,
    BufferedImage.TYPE_INT_RGB);
    Graphics g = image.createGraphics();
    g.drawImage(src, 0, 0, width, height, null);

    //水印文件
    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.drawImage(src_biao, (width - wideth_biao) / 2,
    (height - height_biao) / 2, wideth_biao, height_biao, null);
    //水印文件结束
    g.dispose();
    FileOutputStream out = new FileOutputStream(targetImg);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    encoder.encode(image);
    out.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    /**
    * 打印文字水印图片
    *
    * @param pressText
    * --文字
    * @param targetImg --
    * 目标图片
    * @param fontName --
    * 字体名
    * @param fontStyle --
    * 字体样式
    * @param color --
    * 字体颜色
    * @param fontSize --
    * 字体大小
    * @param x --
    * 偏移量
    * @param y
    */

    public static void pressText(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);
    Graphics g = image.createGraphics();
    g.drawImage(src, 0, 0, wideth, height, null);
    // String s="www.qhd.com.cn";
    g.setColor(Color.RED);
    g.setFont(new Font(fontName, fontStyle, fontSize));

    g.drawString(pressText, wideth - fontSize - x, height - fontSize
    / 2 - y);
    g.dispose();
    FileOutputStream out = new FileOutputStream(targetImg);
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    encoder.encode(image);
    out.close();
    } catch (Exception e) {
    System.out.println(e);
    }
    }

    public static void main(String[] args) {
    pressImage("/Users/liuqi/Desktop/c1.jpeg", "/Users/liuqi/Desktop/c2.jpeg", 0, 0);
    pressText("好喜欢你哦","/Users/liuqi/Desktop/c3.jpeg","宋体",1,0,35,0,0);
    }


    }
  • 相关阅读:
    Linux 全盘备份恢复工具(Clonezilla)
    Dremel琢美电磨机配件指南
    智能设备常用电机入门指南(实物+原理图)
    硬件入门 之 20种视频接口线
    【Spring源码分析】Bean加载流程概览
    面试题:Spring为什么默认bean为单例?
    @Autowired @Resource @Qualifier的区别
    Spring的接口InitializingBean、BeanPostProcessor以及注解@PostConstruct、bean的init-method的执行先后顺序
    Spring Bean的生命周期(非常详细)
    spring中BeanFactory和FactoryBean的区别
  • 原文地址:https://www.cnblogs.com/LQ970811/p/12040333.html
Copyright © 2020-2023  润新知