java 图片编辑,Java图片处理方法大全

下面是本人结合网上代码整理出来的Java中处理图片的一些方法,其中包括了图片缩放、图片切割、图片水印、文字水印等(看看这里):

package com.suyun.util;import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import java.awt.geom.AffineTransform;import java.awt.image.BufferedImage;import java.awt.image.CropImageFilter;import java.awt.image.FilteredImageSource;import java.awt.image.ImageFilter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.ImageFormatException;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class JPEGUtil {/** * 根据原图生成缩略图 * @param srcImg 原图路径 * @param destImg 缩略图路径 */public static void createSmallImage(String srcImg,String destImg){try {File file = new File(srcImg);Image src = ImageIO.read(file);int width = src.getWidth(null);int height = src.getHeight(null);BufferedImage tagImage = new BufferedImage(width/2,height/2,BufferedImage.TYPE_BYTE_GRAY);Graphics2D g2d = tagImage.createGraphics();g2d.rotate(0.5d); //进行图片旋转处理g2d.drawImage(src, 0, 0, width/2, height/2, null);g2d.drawString("缩略图", width/2-50, height/2-15);FileOutputStream output = new FileOutputStream(destImg);JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);encoder.encode(tagImage);output.flush();output.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (ImageFormatException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/** * 进行图片切割 * @param srcFileName 原始图片 * @param descFileName 目标图片 * @param descWidth 目标宽度 * @param descHeight 目标高度 */public static void cutImage(String srcFileName,String descFileName,int descWidth,int descHeight){File srcFile = new File(srcFileName);File descFile = new File(descFileName);Image cropImg = null;ImageFilter cropFilter = null;try {BufferedImage bufferImg = ImageIO.read(srcFile);int srcWidth = bufferImg.getWidth();int srcHeight = bufferImg.getHeight();if(srcWidth>descWidth && srcHeight>descHeight){Image img = bufferImg.getScaledInstance(srcWidth, srcHeight, Image.SCALE_SMOOTH);//descWidth = 200;//descHeight = 150;int cols = 0; // 切片横向数量int rows = 0; // 切片纵向数量// 计算切片的横向和纵向数量if(srcWidth%descWidth==0){cols = srcWidth/descWidth;}else{cols = (int)Math.floor(srcWidth/descWidth)+1;}if(srcHeight%descHeight==0){rows = srcHeight/descHeight;}else{rows = (int)Math.floor(srcHeight/descHeight)+1;}for(int i=0;i1){length += 2;}else{length += 1;}}return length/2;}public static void main(String[] args) {JPEGUtil.createSmallImage("D:/dog17.jpg","D:/small4.jpg");//JPEGUtil.cutImage("D:/dog17.jpg", "D:/cutDog.jpg", 400, 300);//JPEGUtil.pressText("可爱的狗狗", "D:/small2.jpg", "楷体", Font.BOLD, Color.PINK, 14, 5, 5, 0.7f);}}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值