Java 图像截取 缩放
来源:互联网 发布:民生证券交易软件下载 编辑:程序博客网 时间:2024/04/29 22:12
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(); }}
0 0
- Java 图像截取 缩放
- iPhone:UIImage 图像截取 例缩放
- UIImage 图像截取,等比例缩放
- java 图片缩放和截取
- java图像缩放
- C# 图像处理(一)(图像缩放、屏幕截取、图像合并、保存图像)
- java:SWT 缩放图像(Image)
- 使用 Java 进行图像处理 - 图像缩放
- 使用Java等比例缩放图像
- 使用Java等比例缩放图像!
- 使用Java等比例缩放图像
- 使用Java等比例缩放图像
- Java遍历文件夹及图像缩放批处理
- 图像缩放
- 图像缩放
- 图像缩放
- 图像缩放
- 图像缩放
- 网络游戏封包基础
- 北舞校花30分钟喝6斤白酒
- maven工程打war包的时候如何将jar包一起打包
- 点击按钮调用函数并且改变action的路径
- unity开发炉石传说系列系统卡牌出入及移动排列代码
- Java 图像截取 缩放
- SweepDemo graphics SweepGradient Matrix
- 工作中的英语积累3
- android GridView加分割线--最直接的办法
- UML中的耦合和解耦
- sphinx中复合属性字段sql_attr_multi的用法
- unity开发炉石传说系列玩家手中卡牌出入及移动排列代码
- Android事件传递机制(更加深入的了解事件的触发过程)
- eashion希望在ACM的道路上越走越远