`
fudk_k
  • 浏览: 14680 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java实现图片裁剪缩放工具类

阅读更多
import java.awt.Image; 
import java.awt.Rectangle; 
import java.awt.geom.AffineTransform; 
import java.awt.image.AffineTransformOp; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.util.Iterator; 
 
import javax.imageio.ImageIO; 
import javax.imageio.ImageReadParam; 
import javax.imageio.ImageReader; 
import javax.imageio.stream.ImageInputStream; 
 
public class ImageHelper { 
    /*
     * 根据尺寸图片居中裁剪
     */ 
     public static void cutCenterImage(String src,String dest,int w,int h) throws IOException{  
         Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");  
         ImageReader reader = (ImageReader)iterator.next();  
         InputStream in=new FileInputStream(src); 
         ImageInputStream iis = ImageIO.createImageInputStream(in);  
         reader.setInput(iis, true);  
         ImageReadParam param = reader.getDefaultReadParam();  
         int imageIndex = 0;  
         Rectangle rect = new Rectangle((reader.getWidth(imageIndex)-w)/2, (reader.getHeight(imageIndex)-h)/2, w, h);   
         param.setSourceRegion(rect);  
         BufferedImage bi = reader.read(0,param);    
         ImageIO.write(bi, "jpg", new File(dest));            
   
     } 
    /*
     * 图片裁剪二分之一
     */ 
     public static void cutHalfImage(String src,String dest) throws IOException{  
         Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");  
         ImageReader reader = (ImageReader)iterator.next();  
         InputStream in=new FileInputStream(src); 
         ImageInputStream iis = ImageIO.createImageInputStream(in);  
         reader.setInput(iis, true);  
         ImageReadParam param = reader.getDefaultReadParam();  
         int imageIndex = 0;  
         int width = reader.getWidth(imageIndex)/2;  
         int height = reader.getHeight(imageIndex)/2;  
         Rectangle rect = new Rectangle(width/2, height/2, width, height);  
         param.setSourceRegion(rect);  
         BufferedImage bi = reader.read(0,param);    
         ImageIO.write(bi, "jpg", new File(dest));    
     } 
    /*
     * 图片裁剪通用接口
     */ 
 
    public static void cutImage(String src,String dest,int x,int y,int w,int h) throws IOException{  
           Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");  
           ImageReader reader = (ImageReader)iterator.next();  
           InputStream in=new FileInputStream(src); 
           ImageInputStream iis = ImageIO.createImageInputStream(in);  
           reader.setInput(iis, true);  
           ImageReadParam param = reader.getDefaultReadParam();  
           Rectangle rect = new Rectangle(x, y, w,h);   
           param.setSourceRegion(rect);  
           BufferedImage bi = reader.read(0,param);    
           ImageIO.write(bi, "jpg", new File(dest));            
 
    }  
    /*
     * 图片缩放
     */ 
    public static void zoomImage(String src,String dest,int w,int h) throws Exception { 
        double wr=0,hr=0; 
        File srcFile = new File(src); 
        File destFile = new File(dest); 
        BufferedImage bufImg = ImageIO.read(srcFile); 
        Image Itemp = bufImg.getScaledInstance(w, h, bufImg.SCALE_SMOOTH); 
        wr=w*1.0/bufImg.getWidth(); 
        hr=h*1.0 / bufImg.getHeight(); 
        AffineTransformOp ato = new AffineTransformOp(AffineTransform.getScaleInstance(wr, hr), null); 
        Itemp = ato.filter(bufImg, null); 
        try { 
            ImageIO.write((BufferedImage) Itemp,dest.substring(dest.lastIndexOf(".")+1), destFile); 
        } catch (Exception ex) { 
            ex.printStackTrace(); 
        } 
         
    } 
}
分享到:
评论

相关推荐

    图片裁剪、缩放工具类

    标题为“图片裁剪、缩放工具类”,表明这是一个Java编程语言实现的实用程序,能够帮助开发者便捷地对图片进行操作。 在描述中提到,“两种方式”执行图片裁剪和缩放,这可能指的是该工具类提供了两种不同的算法或...

    java裁剪、缩放图片工具类

    这个"java裁剪、缩放图片工具类"提供了这样的功能。它包含两个主要的组件:一个工具类(ImgUtils.java)和一个测试类(Test.java)。让我们深入探讨这两个类及其背后的图像处理原理。 首先,`ImgUtils.java`是核心...

    java图片处理工具类

    在Java编程语言中,处理图片是一项常见的任务,尤其在网页开发、移动应用或者图形用户界面设计中。本篇文章将深入探讨如何使用Java...通过深入理解这些技术,我们可以创建出强大的图片处理工具类,满足日常开发需求。

    批量缩放图片的Java实现

    下面,我们将深入探讨如何使用Java来实现批量缩放图片的功能。 首先,Java提供了强大的Java Advanced Imaging (JAI)库和Java 2D API,它们为处理图像提供了丰富的功能,包括缩放、旋转、裁剪等。在这个场景下,我们...

    Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】

    Java实现的微信图片处理工具类是指使用Java语言实现的微信图片处理工具类,可以实现针对图片的裁剪、合并、等比例缩放、旋转、识别等各种常见的图片处理功能。该工具类基于Java自带的类,基于RGB,可以满足不同用户...

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

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

    java实现图片裁切的工具类实例

    总结来说,Java的`javax.imageio`包提供了强大的图像处理功能,可以方便地进行图片裁剪、旋转、缩放等操作。这个工具类实例展示了如何利用这些功能实现图片裁切,为Java开发者提供了一个实用的参考。通过理解这个...

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

    本资源“java对图片进行操作.rar”提供了一种用Java进行图像操作的工具类,特别关注于图片的剪裁、重置大小以及按比例缩小等功能。以下是关于这些功能的详细解释和实现方法。 首先,图片剪裁是调整图像大小并提取其...

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

    在压缩包中的"java图片大小转换"文件中,很可能包含了实现这些功能的示例代码和使用说明,可以参考学习以加深理解。在实际开发中,我们还可以借助第三方库如`ImageMagick`、`Java Advanced Imaging (JAI)`或`JavaFX`...

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

    总之,"ZoomImageDemo"项目是一个实用的Java工具,它集成了图片上传、预览、裁剪和缩放功能,为开发者提供了一站式的解决方案。通过学习和理解该项目,开发者可以更好地掌握Java在图像处理领域的应用,提升开发效率...

    JAVA28个常用工具类

    2. **ImageUtils.java**: 图像处理工具类,可能包含了对图像进行缩放、裁剪、旋转、合并等操作的功能。它可能会利用Java的`javax.imageio`包或者第三方库如Apache Commons Imaging (formerly known as Sanselan)来...

    java开发常用工具类大全,程序员必备工具

    Java开发是软件工程中的核心部分,对于程序员来说,掌握一套高效、全面的工具类库能够极大地提高工作效率。本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络...

    java android工具类

    在Java Android开发中,工具类(Utils类)是开发者经常使用的辅助代码集合,它们封装了一些通用功能,方便在多个类中复用,提高代码的可维护性和可读性。以下是一些常见的Java Android工具类及其包含的知识点: 1. ...

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

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

    java 图片裁剪

    总的来说,Java图片裁剪涉及到的知识点包括:`BufferedImage`类的使用、`getSubimage()`方法、`Graphics2D`类的图像操作以及异常处理。通过熟练掌握这些技术,你可以实现灵活、高效地处理和裁剪图像。

    图片缩小工具(java)

    对于后续版本的开发,可能会增加更多的功能,比如图片裁剪、旋转、滤镜应用等。此外,优化性能、支持更多图片格式,以及提供图形用户界面(GUI)也是提升用户体验的方向。 总的来说,“图片缩小工具(java)”是一个...

    Cropper 图片裁剪工具 --java

    在IT行业中,图片裁剪工具是网页和应用程序中不可或缺的一部分,尤其在用户需要上传个人头像、产品照片或进行图像编辑时。`Cropper`是一个强大的JavaScript图片裁剪库,它为开发者提供了一种简单易用的方式来实现...

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

    Java的`BufferedImage`类提供了缩放功能,通过`createScaled BufferedImage`方法可以实现。 4. **图像裁剪**:裁剪图像则是选取图像的特定部分。使用`BufferedImage`类的`getSubimage`方法可以获取图像的一部分,...

Global site tag (gtag.js) - Google Analytics