- 浏览: 241098 次
- 性别:
- 来自: 南京
最新评论
-
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 1070InnoDB 启动选项 为了 ... -
关于改变innodb_log_file_size后无法启动mysql的问题
2011-08-03 12:29 2282最近在看MYSQL优化的参数,改了innodb_log_fil ... -
larbin中URL的去重-Bloom Filter算法
2010-08-18 17:47 1985读larbin的源码曾经赞叹 ... -
从 Java 档案 (JAR) 中读取文件
2010-08-12 16:01 2062Java 档案 (Java Archive, JA ... -
Nginx+tomcat 配置
2010-08-04 15:36 5053本文原址连接:http://bbs.yahunet.com/t ... -
linux cronb定时执行java程序
2010-08-02 18:02 1799环境: RedHat Linux JDK5.0 ... -
用HttpClient来模拟浏览器GET POST
2010-05-26 17:42 996一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
JDK API SUN官方下载地址
2010-04-01 11:19 2213http://download.java.net/jdk/jd ... -
Eclipse生成JavaDoc 文件编码解决
2010-02-27 17:04 2177Eclipse导出JavaDoc出现中文乱码解决方法: ... -
Proxool.xml配置文件详细配置说明
2010-02-04 17:58 1803fatal-sql-exception: 它是一 ... -
Java汉语转拼音
2010-01-29 13:59 1444pinyin4j 是Java汉语转拼音 开源框架: h ... -
64位Linux服务器上安装Tomcat
2010-01-21 16:43 3180tomcat 是32位的,安装后在64位环境中不能添加为系统服 ... -
解决web应用用户退出系统后浏览器后退问题
2010-01-13 22:20 46591. 解决用户退出系统后 ... -
response防止页面缓存和重设响应头部
2010-01-13 21:41 1520// 防止缓存 //Forces cache ... -
单元测试使用proxool连接池
2009-12-22 20:29 1488因为proxool连接池一般都是通过tomat web.xml ... -
response防止缓存和重设响应头部
2009-11-30 21:25 32// 防止缓存 response.setHeade ... -
一个奇怪的单例模式
2009-11-15 20:37 980public class Singleton { ... -
MyEclipse下开发邮件发送功能测试失败的原因及处理
2009-11-11 09:09 17461. Exception in thread "ma ... -
java 转换图片为字符串,将字符串转换成图片显示
2009-10-09 20:13 15360java 转换图片为字符串,将字符串转换成图片显示, ... -
java 字符串和二进制相互转换
2009-10-09 19:42 19886二进制转换成字符串: // 二进制转字符串 pub ...
相关推荐
本文将深入探讨Java图片裁剪的相关知识点。 一、图片裁剪原理 图片裁剪是指在原始图像上选择一个矩形区域,并保留该区域内的像素,舍弃其他部分。在Java中,我们通常会用到BufferedImage类,它代表了一个图像,包含...
总结起来,Java图片等比压缩和裁剪涉及读取图片、计算比例、缩放、裁剪和保存等多个步骤,需要理解图像处理的基本原理,并利用适当的库来实现。这个过程中需要注意保持图像质量,避免失真,并确保符合预期的输出尺寸...
这个"java裁剪、缩放图片工具类"提供了这样的功能。它包含两个主要的组件:一个工具类(ImgUtils.java)和一个测试类(Test.java)。让我们深入探讨这两个类及其背后的图像处理原理。 首先,`ImgUtils.java`是核心...
看很多裁剪图片的插件感觉都不是自己想要的,后来也是网上别人说croppic可以满足,结果发现是PHP的插件,而且网络上完全没有java版本的一丁点痕迹,我觉得数据都是一样的传,那应该就是参数的问题了,所以花了点时间...
在Java开发中,图片上传、预览、剪切和缩放是常见的功能需求,尤其在Web应用中。这里,我们主要探讨如何实现这些功能,并基于`swfupload`这个库来构建一个完整的解决方案。 首先,`swfupload`是一个古老的Flash上传...
首先,我们要了解图片裁剪的基本原理。Android系统提供了一个名为`com.android.camera.action.CROP`的Intent,用于启动系统内置的图片裁剪功能。开发者可以创建一个Intent,指定源图片Uri和裁剪参数(如裁剪比例、...
文件列表中的“Jquery+JAVA图片切割上传”可能包含以下部分: 1. 前端HTML和Jquery代码,用于用户界面展示、图片选择和提交。 2. JavaScript文件,包含Jquery实现的图片切割和滤镜功能的逻辑。 3. Java源代码,包括...
Java图片处理类是Java编程语言中用于操作和处理图像文件的核心技术,主要涉及Java的AWT(Abstract Window Toolkit)和Swing库。在Java课程设计中,学生通常会被要求掌握这些概念并应用到实际项目中,例如创建一个...
总结来说,"Java图片编辑软件"通过Java编程语言实现了图片压缩功能,这涉及到图像处理的基本原理、压缩算法以及Java库的使用。了解并掌握这些知识,有助于开发者构建自己的图像处理应用,满足各种需求。
本文将深入探讨如何使用Java来实现图片的指定放大或缩小,并提供一个具体的代码示例,该示例来自“common.util”包下的`AlterUploadImage`类,这是一个专门用于处理图片缩放和裁剪的工具类。 #### 图像缩放原理 ...
在Java编程中,生成PNG透明...总之,生成PNG透明图片缩略图在Java中涉及到图像处理的基本原理和高级技巧,选择合适的库和算法至关重要。同时,要注意透明度的正确处理和代码的优化,以确保缩略图的质量和程序的性能。
下面,我们将深入探讨Android中图片裁剪的实现原理、相关API以及如何优化代码。 在Android中,图片裁剪通常通过Intent来实现,Android系统内置了`ACTION_IMAGE_CAPTURE`和`ACTION_GET_CONTENT`这两个Intent,可以...
"jcrop + jquery + struts2 图片裁剪"的组合提供了一种强大的解决方案,它整合了三个关键的技术来实现用户友好的图像裁剪功能。 首先,Jcrop是jQuery的一个插件,专门用于图像的选择和裁剪。它允许用户通过鼠标或...
本篇文章将深入探讨Android图片裁剪的原理、实现方式以及`CropImageView`的使用方法。 首先,Android系统本身提供了`Bitmap.createBitmap()`方法,可以对原始Bitmap进行裁剪,但此方法无法提供直观的裁剪界面和交互...
#### Java图片压缩代码解析 给定的代码示例主要展示了如何使用Java进行图片的无损压缩处理。具体步骤如下: 1. **读取源图像**:首先,通过`ImageIO.read()`方法读取源图片文件到`Image`对象中。 2. **缩放图像**...
接下来,我们将深入探讨Android图片裁剪的基本原理、实现方法以及可能用到的关键技术。 1. **Intent集成系统裁剪**: Android系统提供了`Intent`来调用内置的图片裁剪工具。通过`ACTION_PICK` Intent获取图片,再...
下面我们将深入探讨Java图片压缩的相关知识点。 1. **图片格式** 图片格式有很多种,如JPEG、PNG、GIF、BMP等。不同的格式有不同的压缩算法和用途。JPEG适用于连续色调的图片,如照片,支持有损压缩;PNG适合于...
要实现图片裁剪,我们可以引入如JQuery Cropper这样的插件。JQuery Cropper是一个轻量级且功能丰富的jQuery插件,支持基于HTML5的Canvas进行图片裁剪。在页面上,用户可以通过拖动和调整裁剪框来选择需要的部分,...
4. **裁剪与边缘检测**:根据图像内容,可能需要进行裁剪,去除多余的背景。同时,可以使用Canny边缘检测或其他边缘检测算法,找到文档的边缘,进一步提高扫描效果。 5. **噪声去除**:使用滤波器(如高斯滤波器)...
首先,我们要了解Java封装FFmpeg的基本原理。通常,这涉及到使用JNI(Java Native Interface)或JNA(Java Native Access)来调用FFmpeg的C/C++库。这样,Java代码可以调用FFmpeg的函数,执行多媒体操作,而无需离开...