Java的图片处理工具类: 可实现以下常用功能:缩放图像、切割图像、图像类型转换、彩色转黑白、文字水

Java的图片处理工具类:

可实现以下常用功能:缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等

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.color.ColorSpace;

import java.awt.geom.AffineTransform;

import java.awt.image.AffineTransformOp;

import java.awt.image.BufferedImage;

import java.awt.image.ColorConvertOp;

import java.awt.image.CropImageFilter;

import java.awt.image.FilteredImageSource;

import java.awt.image.ImageFilter;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

/**

* 图片处理工具类:

* 功能:缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等

* @author Administrator

*/

public class ImageUtils {

/**

* 几种常见的图片格式

*/

public static String IMAGE_TYPE_GIF = "gif";// 图形交换格式

public static String IMAGE_TYPE_JPG = "jpg";// 联合照片专家组

public static String IMAGE_TYPE_JPEG = "jpeg";// 联合照片专家组

public static String IMAGE_TYPE_BMP = "bmp";// 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式

public static String IMAGE_TYPE_PNG = "png";// 可移植网络图形

public static String IMAGE_TYPE_PSD = "psd";// Photoshop的专用格式Photoshop

/**

* 程序入口:用于测试

* @param args

*/

public static void main(String[] args) {

// 1-缩放图像:

// 方法一:按比例缩放

ImageUtils.scale("e:/abc.jpg", "e:/abc_scale.jpg", 2, true);//测试OK

// 方法二:按高度和宽度缩放

ImageUtils.scale2("e:/abc.jpg", "e:/abc_scale2.jpg", 500, 300, true);//测试OK

// 2-切割图像:

// 方法一:按指定起点坐标和宽高切割

ImageUtils.cut("e:/abc.jpg", "e:/abc_cut.jpg", 0, 0, 400, 400 );//测试OK

// 方法二:指定切片的行数和列数

ImageUtils.cut2("e:/abc.jpg", "e:/", 2, 2 );//测试OK

// 方法三:指定切片的宽度和高度

ImageUtils.cut3("e:/abc.jpg", "e:/", 300, 300 );//测试OK

// 3-图像类型转换:

ImageUtils.convert("e:/abc.jpg", "GIF", "e:/abc_convert.gif");//测试OK

// 4-彩色转黑白:

ImageUtils.gray("e:/abc.jpg", "e:/abc_gray.jpg");//测试OK

// 5-给图片添加文字水印:

// 方法一:

ImageUtils.pressText("我是水印文字","e:/abc.jpg","e:/abc_pressText.jpg","宋体",Font.BOLD,Color.white,80, 0, 0, 0.5f);//测试OK

// 方法二:

ImageUtils.pressText2("我也是水印文字", "e:/abc.jpg","e:/abc_pressText2.jpg", "黑体", 36, Color.white, 80, 0, 0, 0.5f);//测试OK

// 6-给图片添加图片水印:

ImageUtils.pressImage("e:/abc2.jpg", "e:/abc.jpg","e:/abc_pressImage.jpg", 0, 0, 0.5f);//测试OK

}

/**

* 缩放图像(按比例缩放)

* @param srcImageFile 源图像文件地址

* @param result 缩放后的图像地址

* @param scale 缩放比例

* @param flag 缩放选择:true 放大; false 缩小;

*/

public final static void scale(String srcImageFile, String result,

int scale, boolean flag) {

try {

BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件

int width = src.getWidth(); // 得到源图宽

int height = src.getHeight(); // 得到源图长

if (flag) {// 放大

width = width * scale;

height = height * scale;

} else {// 缩小

width = width / scale;

height = height / scale;

}

Image image = src.getScaledInstance(width, height,

Image.SCALE_DEFAULT);

BufferedImage tag = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics g = tag.getGraphics();

g.drawImage(image, 0, 0, null); // 绘制缩小后的图

g.dispose();

ImageIO.write(tag, "JPEG", new File(result));// 输出到文件流

} catch (IOException e) {

e.printStackTrace();

}

}

java处理图片的所有类_Java的图片处理工具类相关推荐

  1. java生成验证码工具类_Java生成图形验证码工具类

    生成验证码效果 validatecode.java 验证码生成类 package cn.dsna.util.images; import java.awt.color; import java.awt ...

  2. java中的并发类_java中并发常用工具类

    前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了 今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类, ...

  3. java json 工具类_Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java ...

  4. java list排序工具类_java 之 Collections集合工具类排序

    数组有工具类Arrays,集合也有一个工具类Collections. sort方法: sort(List list):根据其元素natural ordering对制定的列表进行排序 sort(List ...

  5. java多线程aqs实现工具类_Java并发多线程 - 并发工具类JUC

    (adsbygoogle = window.adsbygoogle || []).push({}); 安全共享对象策略 1.线程限制 : 一个被线程限制的对象,由线程独占,并且只能被占有它的线程修改 ...

  6. md5 java 工具类_Java实现一个MD5工具类

    I. MD5工具类 利用JDK封装一个简易的MD5工具类,逻辑比较简单,直接贴下具体实现 public static String getMD5(String content) { String re ...

  7. java 集合工具类_Java集合中Collections工具类总结

    Collections工具类 Collections 是一个操作 Collection(Set. List )和 Map 等集合的工具类 Collection和Collections的区别? Coll ...

  8. java http请求 工具类_Java 实现 Http 请求工具类

    1 packagecom.demo.util;2 3 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io. ...

  9. java sqlserver工具类_Java连接sqlserver数据库工具类

    直接上代码web public class SqlUtils { private static final String DRIVERCLASS; private static final Strin ...

  10. linux 图片编辑 java_Java的图片处理工具类

    Java的图片处理工具类: 可实现以下常用功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 import java.awt.AlphaComposite; import jav ...

最新文章

  1. 每天一个linux命令(27):linux chmod命令
  2. Amazon DynamoDB 入门2:工作原理、API和数据类型介绍
  3. gsoap写一个c++ webservice
  4. 将c语言转换成汇编语言的软件,如何把汇编语言转换成C语言
  5. 诸如fluke等网络测试仪的工作原理简介
  6. “我将 20 年前开发的操作系统迁移到 .NET 6,居然成功了”
  7. 微软:这两个活动目录漏洞可使攻击者轻易接管 Windows 域名
  8. 蓝桥杯 ALGO-73 算法训练 统计字符次数
  9. python自助电影售票机_手把手教你用python抢票回家过年(代码简单)
  10. 数据科学包1---numpy
  11. 软件类配置(二)【Windows中安装python、pycharm、opencv、anaconda】
  12. java脚本语言 dim_写给新手windows脚本的入门
  13. Java Keytool工具简介
  14. Spring Data 数据库建模最佳实践
  15. 蓝牙耳机连接电脑,找不到stereo模式
  16. 多点生活的分布式服务框架DSF
  17. Java有序数组——原地去重——不使用额外空间
  18. 虚拟主播合成视频使用教程
  19. 一些有趣的软件分享,给生活带来一点乐趣
  20. cordova获取手机IMEI

热门文章

  1. 移除List数组中的某一个元素
  2. 宁录哨兵机器人_漫威漫画里奥创、灭霸、哨兵机器人、天启谁更厉害?
  3. C语言驾校管理系统,驾校网站查询系统
  4. 花花公子 243线SLOT
  5. Java宠物商店源代码
  6. 学了这么多年精益思想,居然不知道还有第八种浪费 | IDCF
  7. 查询计算机物理地址指令,怎么查询mac地址命令_如何查mac地址
  8. 手机成像技术简谈(测光篇)
  9. 影响ERP软件价格的要素有哪些?
  10. 为什么ios比android流畅