知识大全 java图片裁剪原理
Posted 知
篇首语:我走在逃离命运的路上,却与命运不期而遇。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java图片裁剪原理相关的知识,希望对你有一定的参考价值。
总体思想
前台网页用js得到裁剪图片的id及x y 宽度和高度
服务端根据id取出要裁剪的图片
根据这些参数来生成裁剪的图像 后台代码如下
java 代码
package 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;
/**
*
*
*
*/
public class OperateImage
// ===源图片路径名称如 c:\\ jpg
private String srcpath ;
// ===剪切图片存放路径名称 如 c:\\ 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( 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:\\ jpg ;
OperateImage o = new OperateImage( )
o setSrcpath(name)
o setSubpath( D:\\ jpg )
o cut() ;
cha138/Article/program/Java/hx/201311/26771
相关参考
怎么用ps把做好的海报图片改成1920*700“图像-图像大小”中可以设置;或者用裁剪工具(V),设置好尺寸再裁剪而成。ps怎么把做好的图片保存成图片形式?快捷键ctrl+shift+s或者ctrl+
可实现以下常用功能缩放图像切割图像图像类型转换彩色转黑白文字水印图片水印等 代码如下复制代码importjavaawtAlphaComposite;importjavaawtColor;impo
Java图片处理文字水印图片水印缩放补白 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! pack
知识大全 加载远程图片时,经常因为缓存而得不到更新的解决方法
原理很简单让你每次获取远程图片的url不同即可复制代码代码如下:cha138/Article/program/Java/JSP/201311/19852
Java图片添加水印 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! importjavaawt*
cha138/Article/program/Java/JSP/201311/20537
Java图片预览功能实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用两种不同的方法实现图
用Java来显示图片生成器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一本图片生成器具有以下
JAVA实现图片的任意方向反转 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! packageju
Java图片压缩实现思路及代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文为大家详细介绍下图