zoukankan      html  css  js  c++  java
  • java image

    package com.lindows.util;
    
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    
    import javax.imageio.ImageIO;
    
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    import com.sun.image.codec.jpeg.JPEGCodec;
    
    public class ImageProcess {
    
    	/**
    	 * @param processImg
    	 *            水印文件,最好用gif或者png可以支持透明
    	 * @param oldImg
    	 *            原始图片文件
    	 * @param newImg
    	 *            生成图片文件
    	 * @param x
    	 *            水印的横坐标
    	 * @param y
    	 *            水印的纵坐标
    	 */
    	public static final void processImg(String processImg, String oldImg,
    			String newImg, int x, int y) {
    
    		try {
    			// 目标文件
    			File file = new File(oldImg);
    			Image oldImage = ImageIO.read(file);
    			int width = oldImage.getWidth(null);
    			int height = oldImage.getHeight(null);
    			BufferedImage image = new BufferedImage(width, height,
    					BufferedImage.TYPE_INT_RGB);
    			Graphics g = image.createGraphics();
    			g.drawImage(oldImage, 0, 0, width, height, null);
    			// 水印文件
    			File file2 = new File(processImg);
    			Image addImg = ImageIO.read(file2);
    			int width1 = addImg.getWidth(null);
    			int height1 = addImg.getHeight(null);
    			g.drawImage(addImg, width - width1 - x, height - height1 - y,
    					width1, height1, null);
    			// g.drawImage(addImg, (width - width1) / 2 - x, (height - height1)/
    			// 2 - y, null);
    			// 水印结束
    			g.dispose();
    			FileOutputStream out = new FileOutputStream(newImg);
    			JPEGImageEncoder encorder = JPEGCodec.createJPEGEncoder(out);
    			encorder.encode(image);
    			out.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) {
    		// 测试方法
    		ImageProcess.processImg("G:/png.png", "G:/1.png", "G:/3.jpg", 0, 0);
    	}
    }
    
     
  • 相关阅读:
    CentOS 7拨号上网(ADSL & PPPoE)
    linux使用nmcli重新生成网卡配置文件
    Linux 内存缓存占用过大,Centos7设置定时清除buff/cache的脚本
    部署redis6.0 常见问题
    ssh 升级导致的hadoop 主备切换失败
    配置zookeeper的 ACL权限
    sqoop 创建跟mysql相同表结构的hive表报错
    vim中显示不可见字符
    supervisor 使用
    使用hive streaming 统计Wordcount
  • 原文地址:https://www.cnblogs.com/lindows/p/14390642.html
Copyright © 2011-2022 走看看