`
lgh06
  • 浏览: 55229 次
文章分类
社区版块
存档分类
最新评论

Java 图像截取 缩放

 
阅读更多
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处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明

    java高清图片缩放、压缩、切割、水印源码例子

    高清缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等 功能非常强大,并且很清晰,请给好评:)

    js控制截取图片旋转缩放

    组装本地或者动态从服务器取出图片成一个整体的图片,可控制调节图片的亮度 黑白 饱和度等等 还可以 点击canvas 里面任意一张小图片 算出点击的 是那一个 还包含了jquery的控制图片上传截取指定位置 调节放大缩小...

    GDI图像处理例程(包含高斯模糊、图像缩放、图像截取、文字水印、去白边、图片杂色等效果)

    GDI图像处理例程 (包含高斯模糊、图像缩放、图像截取、文字水印、去白边、图片杂色等效果) 。去白边效果来自ExDui群雨落无声。图片杂色效果还有待优化。@商亨人和。Tags:GDI图像处理。

    java图片处理工具类

    实现功能: 附加图片;添加文本–可根据textWidth参数自动换行;图片添加水印图片(全屏铺满);图片添加水印图片、可设置...图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……

    java图片处理工具类ImgUtils.java

    实现功能: 叠加图片;图片压缩(支持MultipartFile),添加文本–可根据textWidth参数自动换行,支持行间距、字间距设置;...图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……

    js实现图片截取并上传到web服务器

    使用js实现图片截取并上传到web服务器。用户可从本地选择一张图片,然后可对选择的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中...

    js实现拍照截取上传

    使用js调用本地摄像头...用户也可从本地选择一张图片,然后可对选择的图片或拍照的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中。

    电子地图 java实现!!内附源代码

    实现图片的截取和缩放等操作 实现维护树模型的方法 实现万年历选择框的实现方法 高级搜索的实现方法

    Java屏幕截屏[java源代码]

    点击“开始截取”后就可以在屏幕上拖动鼠标开始截了 截完后,双击红框里面的区域就可以把图像显示在主程序窗口里,这时可以按“保存”把图像保存起来了 目前只能保存成JPG或PNG的格式 源文件就是Capture...

    js图片裁剪

    用户也可从本地选择一张图片,然后可对选择的图片或拍照的图片进行拖动、缩放后截取,最后上传到web服务器。后台使用java实现图片的接收和存储

    [开源]用SWT/JFace实现的放大镜软件jZoomer v1.2.0(附源码)

    更改屏幕采样并缩放的核心算法,使其缩放质量可以调整,支持缩小屏幕,且采样速度更快 4. 版本变更: ·版本升级为1.0.1 5. 待做事项: ·使用手册英文版 ·采样图片截取:只截取可见部分 ·...

    MediaTool:基于JavaFX的视频处理图形化工具

    截图输入需要截图的分辨率和所需截取的图片数量,视频将随机截取所需的图片。 3.编单将所有扫描的视频导出一个编辑单Excel文件,并替换视频的父文件夹作为一个单独的工作表替换;替换合并工作表将所有视频放入一个...

    jsp编程技巧集锦

    数字转中文 128 自动计算金额 129 JSP页面打印中使用WebBrowser控件 130 不刷新页面添加新的类别 131 鼠标滚动缩放图片 132 根据输入的表名生成输入数据表格 133 JSP表格输出到Excel 134.JSP...

    Lerx 网站内容管理系统 v5.5.zip

    能获知图片的中央矩片后裁剪后并按照设定的尺寸进行缩放。能对指定栏目设定特定的裁剪宽度和高度。能对指定栏目下的文章设定原图上传。 16.★每个栏目可拥有独立的私有特定的HTML,可以无损后显示在栏目的显示页中...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--图片的缩放处理(防内存溢出) |--多媒体应用设计图 |--多线程下载 |--多线程下载及断点续传 |--多线程之AsyncTask的用法 |--多线程之线程池ExecutorService |--字体为粗体 |--安卓下的多线程断点上传 |--对话框与...

    Lerx开源网站内容管理系统(CMS.ext)-其他

    能智能感知图片(包括JPG、PNG、GIF等格式)的中央矩片后裁剪后并按照设定的尺寸进行缩放。能对指定栏目设定特定的裁剪宽度和高度。能对指定栏目下的文章设定原图上传。20.每篇文章都各自拥有独立的调查模块,可以...

    易语言程序免安装版下载

    置列图片()有时功能不正常或导致随机错误。 13. 修改BUG:Sqlite3数据库支持库中的“Sqlite记录集.绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见...

Global site tag (gtag.js) - Google Analytics