package com.example.xmhi;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
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 Administrator
*
*/
public class TestCutImg {
private static String imgPath = "F:\\ohergal\\My Pictures\\时尚先生"; //文件路径
private static String imgName = "2007_11_20_14_04_27_66762_0_2.jpg"; //文件名
private static String outPath = "D:\\"; //输出路径
private static String outName = "test.jpg"; //输出文件名
/**
* 图片裁剪
*/
public void cut(){
try {
//获取源图片
FileInputStream is = new FileInputStream(imgPath+File.separator+imgName);
/*
* 返回包含所有当前已注册 ImageReader 的 Iterator,这些 ImageReader
* 声称能够解码指定格式。 参数:formatName - 包含非正式格式名称 .
* 例如 "jpeg" 或 "tiff"等 。
*/
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = it.next();
ImageInputStream 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 rect = new Rectangle(160, 100, 400, 481);
//提供一个 BufferedImage,将其用作解码像素数据的目标。
param.setSourceRegion(rect);
/*
* 使用所提供的 ImageReadParam 读取通过索引 imageIndex 指定的对象,并将
* 它作为一个完整的 BufferedImage 返回。
*/
BufferedImage bi = reader.read(0,param);
//保存新图片
ImageIO.write(bi, "jpg", new File(outPath+File.separator+outName));
} catch (FileNotFoundException e) {
System.out.println("找不到图片: "+imgPath+File.separator+imgName);
e.printStackTrace();
} catch (IOException e) {
System.out.println("获取图片输入流错误 :"+imgPath+File.separator+imgName);
e.printStackTrace();
}
}
/**
* 图片缩放测试
*/
public void reSize(){
try {
// 读入文件
BufferedImage src = ImageIO.read(new File(imgPath+File.separator+imgName));
int width = src.getWidth()/2; // 得到源图宽
int height = src.getHeight()/2; // 得到源图长
Image image = src.getScaledInstance(width, height, Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
ImageIO.write(tag, "JPEG", new File(outPath+File.separator+outName));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
TestCutImg tci = new TestCutImg();
//tci.cut();
tci.reSize();
}
}
分享到:
相关推荐
java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明
高清缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等 功能非常强大,并且很清晰,请给好评:)
组装本地或者动态从服务器取出图片成一个整体的图片,可控制调节图片的亮度 黑白 饱和度等等 还可以 点击canvas 里面任意一张小图片 算出点击的 是那一个 还包含了jquery的控制图片上传截取指定位置 调节放大缩小...
GDI图像处理例程 (包含高斯模糊、图像缩放、图像截取、文字水印、去白边、图片杂色等效果) 。去白边效果来自ExDui群雨落无声。图片杂色效果还有待优化。@商亨人和。Tags:GDI图像处理。
实现功能: 附加图片;添加文本–可根据textWidth参数自动换行;图片添加水印图片(全屏铺满);图片添加水印图片、可设置...图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……
实现功能: 叠加图片;图片压缩(支持MultipartFile),添加文本–可根据textWidth参数自动换行,支持行间距、字间距设置;...图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……
使用js实现图片截取并上传到web服务器。用户可从本地选择一张图片,然后可对选择的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中...
使用js调用本地摄像头...用户也可从本地选择一张图片,然后可对选择的图片或拍照的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中。
实现图片的截取和缩放等操作 实现维护树模型的方法 实现万年历选择框的实现方法 高级搜索的实现方法
点击“开始截取”后就可以在屏幕上拖动鼠标开始截了 截完后,双击红框里面的区域就可以把图像显示在主程序窗口里,这时可以按“保存”把图像保存起来了 目前只能保存成JPG或PNG的格式 源文件就是Capture...
用户也可从本地选择一张图片,然后可对选择的图片或拍照的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储
更改屏幕采样并缩放的核心算法,使其缩放质量可以调整,支持缩小屏幕,且采样速度更快 4. 版本变更: ·版本升级为1.0.1 5. 待做事项: ·使用手册英文版 ·采样图片截取:只截取可见部分 ·...
截图输入需要截图的分辨率和所需截取的图片数量,视频将随机截取所需的图片。 3.编单将所有扫描的视频导出一个编辑单Excel文件,并替换视频的父文件夹作为一个单独的工作表替换;替换合并工作表将所有视频放入一个...
数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...
能获知图片的中央矩片后裁剪后并按照设定的尺寸进行缩放。能对指定栏目设定特定的裁剪宽度和高度。能对指定栏目下的文章设定原图上传。 16.★每个栏目可拥有独立的私有特定的HTML,可以无损后显示在栏目的显示页中...
|--图片的缩放处理(防内存溢出) |--多媒体应用设计图 |--多线程下载 |--多线程下载及断点续传 |--多线程之AsyncTask的用法 |--多线程之线程池ExecutorService |--字体为粗体 |--安卓下的多线程断点上传 |--对话框与...
能智能感知图片(包括JPG、PNG、GIF等格式)的中央矩片后裁剪后并按照设定的尺寸进行缩放。能对指定栏目设定特定的裁剪宽度和高度。能对指定栏目下的文章设定原图上传。20.每篇文章都各自拥有独立的调查模块,可以...
置列图片()有时功能不正常或导致随机错误。 13. 修改BUG:Sqlite3数据库支持库中的“Sqlite记录集.绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见...