`

[转载]java 图片剪裁和缩放

    博客分类:
  • 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();
    }
}

 

转载自: http://www.throughsoul.com/archives/682.html

分享到:
评论

相关推荐

    图片裁剪、缩放工具类

    接下来,我们来看看压缩包中的两个文件:ImgUtils.java和ImgUtils1.java。通常,这两个文件都可能包含类定义,其中ImgUtils可能是主要的图片处理工具类,而ImgUtils1可能是其扩展或者另一种实现方式。在这些类中,...

    java图片裁剪

    在Java编程语言中,图片裁剪是一项常见的图像处理任务,主要涉及到对图像的选取和截取,以便获得图像的一部分或按特定比例调整图像大小。Java提供了多种库和API来实现这个功能,使得开发者能够轻松地处理图像裁剪的...

    java裁剪、缩放图片工具类

    在Java编程语言中,处理图像任务,如裁剪和缩放,是常见的需求。这个"java裁剪、缩放图片工具类"提供了这样的功能。它包含两个主要的组件:一个工具类(ImgUtils.java)和一个测试类(Test.java)。让我们深入探讨这...

    java处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....

    jsp+CropZoom+jquery+java 图片缩放裁剪

    【标题】"jsp+CropZoom+jquery+java 图片缩放裁剪" 是一个基于Web的图像处理系统,主要用于实现用户在上传头像时进行自由裁剪的功能。这个项目使用了JSP(JavaServer Pages)作为后端动态网页技术,CropZoom作为前端...

    C#实现缩放和剪裁图片的方法示例

    本文主要介绍了C#实现缩放和剪裁图片的方法,包括图片缩放和图片剪裁两方面的内容。通过实例形式,我们分析了C#针对图片属性的缩放、裁剪等相关操作技巧,旨在帮助读者更好地理解和应用C#中的图片处理技术。

    java 图片上传,可预览可剪切可缩放

    4. **图片缩放** - **前端缩放**:使用CSS的`transform`属性,可以实现图片的缩放效果,但这仅限于视觉上的缩放,不会改变图片的实际大小。 - **后端缩放**:在服务器端,可以使用Java的图像处理库,如`ImageIO`或...

    java对图片进行操作.rar_java 图片剪裁_java图片_图片

    总的来说,Java提供了丰富的库来处理图像操作,包括剪裁、缩放和格式转换等。这个“java对图片进行操作.rar”工具类提供了一个基础的框架,开发者可以根据需求进一步扩展和优化。对于处理大量图像的任务,还可以考虑...

    java 水印 图像处理 图片分割 裁剪 缩放

    Java图像处理技术是Java开发中的一个重要领域,涵盖了多种操作,如添加水印、图像分割、裁剪和缩放。在本项目中,这些功能被整合到一个完整的程序中,并通过单元测试进行了验证,确保了各个功能的正确性。此外,程序...

    java版头像上传缩放裁剪功能

    不过在这个项目中,可能使用了更简单的库,如Imgscalr,它提供了简单的API来进行图片缩放和裁剪。裁剪操作通常包括设置裁剪区域的坐标和大小,然后使用`CropImageOp`类进行实际的裁剪操作。 4. 图片缩放: 缩放是...

    iOS 图片裁剪 自定义大小 图片可缩放

    综上所述,自定义裁剪和图片缩放功能涉及多个iOS开发的关键知识点,包括UIKit组件的使用、手势识别、图形上下文操作等。实现这样的功能不仅提高了应用的用户体验,也为用户提供更多个性化编辑的可能。在实际开发中,...

    C# WPF实现的图片处理小工具,可进行图片裁剪、缩放、涂鸦、旋转、查看图片信息、保存

    2. 图片缩放: 缩放功能可以通过设置`Image`控件的`Stretch`属性来实现。`Uniform`模式保持原图比例缩放,`Fill`模式则会填充整个控件区域。还可以添加滑块让用户自定义缩放比例。 3. 涂鸦: 涂鸦功能需要创建一个...

    批量缩放图片的Java实现

    7. **配置参数**:在`PictureResize.java`程序中,很可能包含了配置图片缩放大小的参数,这样用户可以根据需求调整缩放比例。 总之,批量缩放图片的Java实现是一个结合了文件操作、图像处理和可能的并发编程的技术...

    Android图片裁剪----移动、缩放图片进行裁剪

    本知识点将详细介绍如何在Android中实现图片的移动和缩放裁剪。 首先,我们需要了解Android中处理图片的基础知识。Android提供了多种库和API来处理图像,例如Bitmap类用于表示位图图像,Matrix类则用于处理图像的...

    用JAVA获取视频文件中的帧图片并等比缩放

    通过使用Java语言和javacv库,我们可以快速获取视频文件中的帧图片,并对其进行等比缩放,以满足不同的应用需求。 知识点一:视频文件中的帧图片获取 * 视频文件中的帧图片获取是指从视频文件中抽取出每一帧图片的...

    java图片上传、控制大小、宽度高度和图片裁剪并保存

    在Java编程中,图片处理是一项常见的任务,包括图片的上传、尺寸控制、宽高调整以及裁剪和保存等操作。这些功能在Web应用、图像处理软件或者数据分析项目中都有广泛的应用。下面我们将深入探讨如何使用Java实现这些...

    java处理裁剪图片(更改图片大小)

    在Java编程中,处理图像操作是一项常见的任务,其中包括裁剪图片和更改图片尺寸。下面将详细介绍这三种方法。 首先,我们来谈谈使用第三方工具ImageMagick。ImageMagick是一款强大的命令行工具,能够处理各种图像...

    java图片裁剪,裁剪完新图片保存

    1. **初始化参数**:`srcpath` 存储源图片的路径,`subpath` 存储裁剪后图片的保存路径,`x`, `y`, `width`, 和 `height` 分别表示裁剪的起始坐标和裁剪区域的宽高。 2. **打开文件输入流**:`FileInputStream` ...

Global site tag (gtag.js) - Google Analytics