java图片处理(缩放,放大,logo)

从别人那整理得来的图片(jpg)处理类

 效果还不错

 

 

 

 

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

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

public class ImageTset {
	/*
	 * 图片处理
	 * 放大缩小处理
	 * logo处理
	 * */
	public static void reduceImg(String imgsrc, int widthdist,int heightdist) {
	    try {
	        File srcfile = new File(imgsrc);   
	        if (!srcfile.exists()) {   
	            return;   
	        }
	        
	        //载入图片文件
	        Image src = javax.imageio.ImageIO.read(srcfile);
	        int w0 = src.getWidth(null);    //得到源图宽
	        int h0 = src.getHeight(null);   //得到源图长
	        
	        BufferedImage tag= new BufferedImage((int) widthdist, (int) heightdist, BufferedImage.TYPE_INT_RGB);   
	        
	        //保存文件
	        //绘制缩小后的图
	        tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist,  Image.SCALE_SMOOTH), 0, 0,  null);
	        //tag.getGraphics().drawImage(src.getScaledInstance(widthdist, heightdist,  Image.SCALE_AREA_AVERAGING), 0, 0,  null);
	        
	        //标注水印
	        //int x = widthdist/10*8;   //水印位置(x,y)
	        //int y = heightdist/10*8;
	        //jpg_logo( tag , x , y );
            
            //重命名并新建图片
            String oleName = imgsrc.substring(imgsrc.indexOf(".")-1, imgsrc.indexOf("."));
    		String newName = oleName + "v";
    		String imgdist = imgsrc.replace(oleName, newName);
	        
	        //输出到文件流
	        FileOutputStream out = new FileOutputStream(imgdist);
	        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
	        //近JPEG编码 
	        encoder.encode(tag);
	        out.close();
	  
	    } catch (IOException ex) {
	        ex.printStackTrace();
	    }
	}
	
	public static void jpg_logo(BufferedImage tag , int x , int y ) {
		
        Graphics g = tag.getGraphics();
        //g.setColor(Color.BLACK);   //以下设置前景色
        g.setXORMode(Color.GREEN);
        g.setFont(new Font("MyFont", Font.ITALIC, 24));
        g.drawString("无印", x, y);
        g.dispose();
	}
	
	public static void main(String args[])  throws Exception {
		String  f = "f:/1.jpg";
		reduceImg(f,168*5,105*5);
		
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值