博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java上传图片剪切工具类
阅读量:5070 次
发布时间:2019-06-12

本文共 2947 字,大约阅读时间需要 9 分钟。

package com.up.util;import java.awt.Rectangle;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Iterator;import javax.imageio.ImageIO;import javax.imageio.ImageReadParam;import javax.imageio.ImageReader;import javax.imageio.stream.ImageInputStream;public class OperateImage {	 private String srcpath; //原图路径 private String subpath; //目标存放路径 private String imageType; //图片类型 private int x; private int y; private int width; //图片目标宽度 private int height; //图片目标高度   public OperateImage() { }  public OperateImage(String srcpath, int x, int y, int width, int height) {  this.srcpath = srcpath;  this.x = x;  this.y = y;  this.width = width;  this.height = height; }  public int getHeight() {  return height; }  public void setHeight(int height) {  this.height = height; }  public String getSrcpath() {  return srcpath; }  public void setSrcpath(String srcpath) {  this.srcpath = srcpath;  if(srcpath != null) {   this.imageType = srcpath.substring(srcpath.indexOf(".")+1, srcpath.length());  } }  public String getSubpath() {  return subpath; }  public void setSubpath(String subpath) {  this.subpath = subpath; }  public int getWidth() {  return width; }  public void setWidth(int width) {  this.width = width; }  public int getX() {  return x; }  public void setX(int x) {  this.x = x; }  public int getY() {  return y; }  public void setY(int y) {  this.y = y; }  public String getImageType() {  return imageType; }  public void setImageType(String imageType) {  this.imageType = imageType; }  public boolean cut() throws IOException {	  FileInputStream is = null;	  ImageInputStream iis = null;	  boolean bol = false;	  try {		   is = new FileInputStream(srcpath);		   Iterator
it = ImageIO.getImageReadersByFormatName(this.imageType); ImageReader reader = it.next(); iis = ImageIO.createImageInputStream(is); reader.setInput(iis, true); ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(x, y, width, height); param.setSourceRegion(rect); BufferedImage bi = reader.read(0, param); //实际高度大于目标高度或者实际宽度大于目标宽度则进行剪切 File o = new File(srcpath); BufferedImage bii = ImageIO.read(o); int itempWidth = bii.getWidth(); //实际宽度 int itempHeight = bii.getHeight(); //实际高度 if ((itempHeight > height) || (itempWidth > width)) { ImageIO.write(bi, this.imageType, new File(subpath)); bol = true; } } finally { if (is != null) is.close(); if (iis != null) iis.close(); } return bol; } public static void main(String[] args) { OperateImage o = new OperateImage("E:\\testdata\\1.jpg", 0, 0, 100, 100); o.setSubpath("E:\\testdata\\2.jpg"); o.setImageType("jpg"); try { o.cut(); } catch (IOException e) { e.printStackTrace(); } }}

转载于:https://www.cnblogs.com/zsychanpin/p/6856732.html

你可能感兴趣的文章
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
输入月份和日期,得出是今年第几天
查看>>
pig自定义UDF
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
日志框架--(一)基础篇
查看>>
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>