JAVA实现图片裁剪

 1 /**
 2      * 裁剪图片
 3      * @param src 源图片
 4      * @param dest 裁剪后的图片
 5      * @param x    裁剪范围的X坐标
 6      * @param y 裁剪范围的Y坐标
 7      * @param w 裁剪范围的高度
 8      * @param h 裁剪范围的宽度
 9      * @param destW 裁剪后图片的宽度
10      * @param destH 裁剪后图片的高度
11      * @throws IOException
12      */
13     public static void cutImage(String src, String dest, int x, int y, int w,
14             int h,int destW,int destH) throws IOException {
15         try{
16
17             //未知问题,不知道为啥路径的最后会有\r\n
18
19             src = src.replace("\r\n", "");
20             dest = dest.replace("\r\n", "");
21             System.out.println("CutImage:src=" + src + ";dest=" + dest + ";x=" + x + ";y=" + y);
22             File file = new File(src);
23             if(file.exists()){
24                 Iterator<ImageReader> iterator = ImageIO.getImageReadersByFormatName("jpg");
25                 ImageReader reader = (ImageReader) iterator.next();
26                 InputStream in = new FileInputStream(src);
27                 ImageInputStream iis = ImageIO.createImageInputStream(in);
28                 reader.setInput(iis, true);
29                 ImageReadParam param = reader.getDefaultReadParam();
30                 Rectangle rect = new Rectangle(x, y, w, h);
31                 param.setSourceRegion(rect);
32                 BufferedImage bi = reader.read(0, param);
33                 if(w != destW){ //被拉伸或者缩小过
34                     bi.flush();
35                     BufferedImage newImage = new BufferedImage(destW,destH,bi.getType());
36                     Graphics g = newImage.getGraphics();
37                     g.drawImage(bi,0,0,destW,destH,null,null);
38                     g.dispose();
39                     ImageIO.write(newImage, "jpg", new File(dest));
40                 }else{
41                     ImageIO.write(bi, "jpg", new File(dest));
42                 }
43                 iis.close();
44                 in.close();
45                 //最后删除临时文件
46                 file.delete();
47             }else{
48                 System.out.println("找不到要裁剪的文件:FileName=" + src);
49             }
50         }catch(Exception ex){
51             ex.printStackTrace();
52         }
53     }

cutImage

时间: 2024-10-10 02:05:29

JAVA实现图片裁剪的相关文章

Java实现图片裁剪预览功能

Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import 

Java+Javascript图片裁剪简单封装

在做项目的过程中,有很多时候前端的图片会出现拉伸现象,所以在上传图片的时候,图片裁剪是必不可少的.所以有了封装一个图片裁剪工具的念头,下面是实现步骤: 1.首先选择一个前台裁剪工具,我这里使用的是Jcrop-0.9.12. 2.开始编写前端js代码: 我这里把前端封装成一个函数 /**      * 初始化裁剪工具.      * @param divId 定义生成填充页面代码的div(函数产生的代码会填充到此div内)     * @param imagePath 图片地址     * @pa

java 图片裁剪上传变红等失真现象、cmyk颜色模式图片裁剪异常现象处理

1.本文仅为了提供图片上传过程中,部分java图片处理代码. 2.以下代码可以解决部分图片上传裁剪后整体变红等失真现象. 3.以下代码支持cmyk颜色模式的图片上传裁剪. /**  * 图片裁剪  * @param srcImageFile 裁剪前图片地址  * @param dirImageFile 裁剪后图片地址  * @param x   图片裁剪属性  * @param y   图片裁剪属性  * @param destWidth  图片裁剪属性  * @param destHeight

java图片裁剪处理工具类代码

剪切前:  原文:java图片裁剪处理工具类代码 源代码下载地址:http://www.zuidaima.com/share/1550463351786496.htm 剪切后:  package com.zuidaima.zhangjun.image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import

java 图片裁剪

图片裁剪功能,我一直以为是前端那边去做,后台不用做过多的考虑,现在我发现,前端去做裁剪好像不是太理想,我在这里简单地介绍一下我们大java的裁剪功能 前端只需要上传,x (x轴),y(y轴) , h(高), w(宽),以上几个坐标点即可 以下是原图 裁剪之后 代码如下,需要引入jar public static void main(String[] args) { // 在 C 盘的根目录有一张 1.jpg 的图片 File fromPic = new File("C:\\1.jpg"

简单的图片裁剪服务器

自己写的一个简单的图片服务器,可以读取FastDFS上的图片,根据参数进行图片裁剪输出到前台 改项目可以上传图片到FastDFS,读取FastDFS上存储的图片,前面可以增加Varnish图片缓存服务器缓解图片裁剪压力 使用一个简单的Servlet实现 package com.imgcut.servlet; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException;

使用JCrop进行图片裁剪,裁剪js说明,裁剪预览,裁剪上传,裁剪设计的图片处理的工具类和代码

?? 1.要想制作图片裁剪功能,可以使用网上的裁剪工具JCrop,网址是:https://github.com/tapmodo/Jcrop/ 案例效果如下: 2.引入JCrop的js代码,具体要引入那些js可以参考JCrop案例: 3.编写的html代码如下: <div id="light" class="white_content"> <div class="vatitlee"> 封面截取 <div class=&

struts2+jsp+jquery+Jcrop实现图片裁剪并上传

<1> 使用html标签上传需要裁剪的大图. <2> 在页面呈现大图,使用Jcrop(Jquery)对大图进行裁剪,并且可以进行预览. <3> 选择好截取部分之后发送数据给Action,在服务器端使用 Java API 对大图进行裁剪. <4> 保存大图裁剪好的头像到指定目录,完成业务. 下面一步一步做: 第一步:使用html标签上传需要裁剪的大图. 这一步说白了也就是使用Struts2自带的FileUpload功能,把图片进行上传具体代码如下: html页

Android图片裁剪之自由裁剪

我的博客http://blog.csdn.net/dawn_moon 客户的需求都是非常怪的.我有时候在给客户做项目的时候就想骂客户是sb.可是请你相信我,等你有需求,自己变成客户的时候,给你做项目的哥哥肯定也会骂你是sb. 是这种,客户须要做一个图片上传的功能,这个图片须要裁剪.一般而言,这东西用系统自带的裁剪就搞定了.但是客户不,他要能够自由裁剪,就是长宽比不固定,想裁成什么比例就裁成什么比例,我一听,蛋都碎了. 没有办法,客户sb归sb,需求还是得照做,不然不给钱要喝西北风了. 图片裁剪的