- 浏览: 236984 次
- 性别:
- 来自: 南京
最新评论
-
gonglil:
貌似不行呢?
java 字符串和二进制相互转换 -
robingdo:
这样关闭proxool连接池以后,项目没报那个错,但是数据库用 ...
Proxool连接池在reload web容器时出现HouseKeeper的空指针异常 -
xb12369:
ezfantasy 写道lord_is_layuping 写道 ...
Java忽略大小写替换和提取字符信息 -
ezfantasy:
lord_is_layuping 写道不区分大小写应该是(?i ...
Java忽略大小写替换和提取字符信息 -
狂盗一枝梅:
hex2byte函数功能是转换成十六进制吧?上面写的是转换成二 ...
java 转换图片为字符串,将字符串转换成图片显示
原文地址:http://blog.csdn.net/lql876381722/archive/2008/03/21/2203512.aspx
总体思想:
1.前台网页用js得到裁剪图片的id及x,y,宽度和高度。
2.服务端根据id取出要裁剪的图片 。
3.根据这些参数来生成裁剪的图像。
后台代码如下:
package com.wodexiangce; 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; /** * * * @author <a href="mailto:lqinglong@yahoo.cn">qinglong.lu</a> * * 2008-3-21 */ public class OperateImage { // ===源图片路径名称如:c:\1.jpg private String srcpath ; // ===剪切图片存放路径名称.如:c:\2.jpg private String subpath ; // ===剪切点x坐标 private int x ; private int y ; // ===剪切点宽度 private int width ; private int height ; public OperateImage() { } public OperateImage( int x, int y, int width, int height) { this .x = x ; this .y = y ; this .width = width ; this .height = height ; } /** * 对图片裁剪,并把裁剪完蛋新图片保存 。 */ public void cut() throws IOException { FileInputStream is = null ; ImageInputStream iis = null ; try { // 读取图片文件 is = new FileInputStream(srcpath); /* * 返回包含所有当前已注册 ImageReader 的 Iterator,这些 ImageReader * 声称能够解码指定格式。 参数:formatName - 包含非正式格式名称 . *(例如 "jpeg" 或 "tiff")等 。 */ Iterator < ImageReader > it = ImageIO.getImageReadersByFormatName( " jpg " ); ImageReader reader = it.next(); // 获取图片流 iis = ImageIO.createImageInputStream(is); /* * <p>iis:读取源.true:只向前搜索 </p>.将它标记为 ‘只向前搜索’。 * 此设置意味着包含在输入源中的图像将只按顺序读取,可能允许 reader * 避免缓存包含与以前已经读取的图像关联的数据的那些输入部分。 */ reader.setInput(iis, true ) ; /* * <p>描述如何对流进行解码的类<p>.用于指定如何在输入时从 Java Image I/O * 框架的上下文中的流转换一幅图像或一组图像。用于特定图像格式的插件 * 将从其 ImageReader 实现的 getDefaultReadParam 方法中返回 * ImageReadParam 的实例。 */ ImageReadParam param = reader.getDefaultReadParam(); /* * 图片裁剪区域。Rectangle 指定了坐标空间中的一个区域,通过 Rectangle 对象 * 的左上顶点的坐标(x,y)、宽度和高度可以定义这个区域。 */ Rectangle rect = new Rectangle(x, y, width, height); // 提供一个 BufferedImage,将其用作解码像素数据的目标。 param.setSourceRegion(rect); /* * 使用所提供的 ImageReadParam 读取通过索引 imageIndex 指定的对象,并将 * 它作为一个完整的 BufferedImage 返回。 */ BufferedImage bi = reader.read( 0 ,param); // 保存新图片 ImageIO.write(bi, " jpg " , new File(subpath)); } finally { if (is != null ) is.close() ; if (iis != null ) iis.close(); } } 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; } 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 static void main(String[] args) throws Exception { String name = " d:\2005121210161588950.jpg " ; OperateImage o = new OperateImage( 100 , 100 , 100 , 100 ); o.setSrcpath(name); o.setSubpath( " D:\2.jpg " ); o.cut() ; } }
评论
2 楼
luohaobubu
2012-04-09
Exception in thread "main" java.io.FileNotFoundException: d:\20120409.jpg (文件名、目录名或卷标语法不正确。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:106) at java.io.FileInputStream.<init>(FileInputStream.java:66) at com.appbox.advertise.advertise.test.OperateImageTest.cut(OperateImageTest.java:52) at com.appbox.advertise.advertise.test.OperateImageTest.main(OperateImageTest.java:162)
d:\20120409.jpg是我新建的图片
运行时报错啊~~
1 楼
makemyownlife
2010-09-26
flash版本的也是这种方式吗?
发表评论
-
InnoDB 启动选项
2011-08-03 12:31 1023InnoDB 启动选项 为了 ... -
关于改变innodb_log_file_size后无法启动mysql的问题
2011-08-03 12:29 2247最近在看MYSQL优化的参数,改了innodb_log_fil ... -
larbin中URL的去重-Bloom Filter算法
2010-08-18 17:47 1945读larbin的源码曾经赞叹 ... -
从 Java 档案 (JAR) 中读取文件
2010-08-12 16:01 2021Java 档案 (Java Archive, JA ... -
Nginx+tomcat 配置
2010-08-04 15:36 4977本文原址连接:http://bbs.yahunet.com/t ... -
linux cronb定时执行java程序
2010-08-02 18:02 1742环境: RedHat Linux JDK5.0 ... -
用HttpClient来模拟浏览器GET POST
2010-05-26 17:42 963一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
JDK API SUN官方下载地址
2010-04-01 11:19 2125http://download.java.net/jdk/jd ... -
Eclipse生成JavaDoc 文件编码解决
2010-02-27 17:04 2083Eclipse导出JavaDoc出现中文乱码解决方法: ... -
Proxool.xml配置文件详细配置说明
2010-02-04 17:58 1766fatal-sql-exception: 它是一 ... -
Java汉语转拼音
2010-01-29 13:59 1415pinyin4j 是Java汉语转拼音 开源框架: h ... -
64位Linux服务器上安装Tomcat
2010-01-21 16:43 3147tomcat 是32位的,安装后在64位环境中不能添加为系统服 ... -
解决web应用用户退出系统后浏览器后退问题
2010-01-13 22:20 46261. 解决用户退出系统后 ... -
response防止页面缓存和重设响应头部
2010-01-13 21:41 1463// 防止缓存 //Forces cache ... -
单元测试使用proxool连接池
2009-12-22 20:29 1454因为proxool连接池一般都是通过tomat web.xml ... -
response防止缓存和重设响应头部
2009-11-30 21:25 32// 防止缓存 response.setHeade ... -
一个奇怪的单例模式
2009-11-15 20:37 897public class Singleton { ... -
MyEclipse下开发邮件发送功能测试失败的原因及处理
2009-11-11 09:09 17111. Exception in thread "ma ... -
java 转换图片为字符串,将字符串转换成图片显示
2009-10-09 20:13 15315java 转换图片为字符串,将字符串转换成图片显示, ... -
java 字符串和二进制相互转换
2009-10-09 19:42 19815二进制转换成字符串: // 二进制转字符串 pub ...
相关推荐
java图片裁剪技术
对图片裁剪,并把裁剪完新图片保存 描述如何对流进行解码的类<p>.用于指定如何在输入时从 Java Image I/O
自己写的一个java实现的图片裁剪源码,一个简单实现类,简单实用。
java图片上传、控制大小、宽度高度和图片裁剪并保存
java图片裁剪和java生成缩略图.pdf
Java实现图片裁剪预览, 详细可以看我的博文
一共包含了三种方法对于图片尺寸的修改———— 一种是使用第三方工具 ImageMagick 两种使用java自带类进行修改。
在JAVA编程里,实现图片的裁剪。java 图片裁剪 裁剪图片。
使用java代码,实现图片的裁剪,可以将图片按照要求进行裁剪。
纯java代码,演示上传文件,适合任何文件,主要是了解HTTP请求的信息,然后解析请求的字符串,此事例只考虑了现在的两种主要的浏览器的请求,因为浏览器不一样文件名会有差异,IE就只有文件名,而FF就是全路径名
java上传并裁剪图片,功能已经实现,非常完美
java图片等比压缩后裁剪
Java深入微服务原理改造房产销售平台 Java 微服务 spring sping boot
java 对图片操作的工具类, 对图片进行剪裁 重置图片大小 按倍率缩小图片 对图片裁剪,并把裁剪新图片保存
Java游戏编程原理与实践教程加随书源代码,Java游戏编程原理与实践教程PDF和源代码一起
java端采用Servlet;来处理图像裁剪;ajax发送请求裁剪,无刷新见效果(只支持IE、火狐浏览器);工程附带Flex版图像裁剪半成品,代码没写完(受网友请求一并附在工程里了)
NULL 博文链接:https://mutourenoo.iteye.com/blog/1249555
兼容性不是很高。大家可以帮忙完善。哈哈。
19年10月3号更新 新资源地址https://download.csdn.net/download/b379685397/11831772。 使用教程见https://blog.csdn.net/b379685397/article/details/101940373 有问题可以私信我哦