`
Luob.
  • 浏览: 1584561 次
  • 来自: 上海
社区版块
存档分类
最新评论

java 图片,剪切,缩放

    博客分类:
  • Java
阅读更多
package out;  
  
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开发中,图片上传、预览、剪切和缩放是常见的功能需求,尤其在Web应用中。这里,我们主要探讨如何实现这些功能,并基于`swfupload`这个库来构建一个完整的解决方案。 首先,`swfupload`是一个古老的Flash上传...

    java 图片剪切

    在Java编程语言中,图片剪切是一项常见的图像处理任务,主要目的是从原始图像中裁剪出特定区域,以便获得所需的视觉效果或者优化图片尺寸。在标题提到的“java 图片剪切”项目中,我们主要关注如何以正方形的方式...

    JAVA快速图片剪切

    在Java编程语言中,图片剪切是一项常见的任务,特别是在图像处理和图形用户界面的应用中。本文将深入探讨如何使用Java实现快速的图片剪切功能,以及相关的核心知识点。 首先,我们要明白图片剪切的基本概念。图片...

    js+java图片剪切工具

    这种工具可能提供了用户在浏览器上直接对图片进行剪切、旋转、缩放等操作的功能,并通过与后端Java服务的交互,实现图片的保存或进一步处理。 【描述】:“js+java图片剪切工具,供大家一起共同分享学习。” 这段...

    JAVA实现的图片剪切预览

    本项目聚焦于使用JAVA实现图片的剪切预览功能,并结合JQUERY前端控件来提供用户友好的交互体验。以下将详细阐述相关知识点。 首先,让我们关注“JAVA实现的图片剪切预览”这一主题。在Java中,处理图片主要依靠Java...

    jsp js 在线图片编辑剪切 缩放

    在IT行业中,尤其是在Web开发领域,使用jsp和js来实现在线图片编辑、剪切和缩放功能是一项常见的需求。这通常涉及到用户交互、图像处理和前端技术的综合应用。以下是对这一主题的详细阐述: 首先,`jsp`(Java...

    图片缩放剪切处理代码

    在IT行业中,图片的缩放和剪切处理是常见的需求,尤其在网页设计、社交媒体、电商网站等场景中。这个“图片缩放剪切处理代码”主题涉及到的是使用JavaScript、ASP、PHP和可能的JSP技术来实现这些功能。下面我们将...

    javascript+asp图片缩放剪切

    JavaScript 和 ASP 图片缩放剪切技术是一种常见的前端与后端结合处理图像的方法,尤其在用户上传图片时,为了保持网站性能和用户体验,通常需要对图片进行预处理,包括缩放和剪切。这一技术可以应用于多种编程环境,...

    关于图片操作(剪切、缩放)

    在Python的PIL库或Java的AWT和Swing库中,都有相应的API可以方便地实现图片剪切功能。 图片缩放则是改变图片的尺寸,增大或减小图片的长宽比例。缩放操作需要注意保持图像的比例,以免导致变形。无损缩放尽量保持...

    android图片缩放剪切

    在Android开发中,图片处理是一项常见的任务,包括图片的缩放和剪切。这两个操作在很多应用场景中都至关重要,比如用户选择头像、编辑照片或者在应用内部展示图像时。以下将详细介绍Android平台上的图片缩放和剪切...

    图片剪切 旋转 放大 cropzoom java jsp

    本篇文章将深入探讨“图片剪切、旋转和放大”这一主题,以及如何在Java JSP环境中使用cropzoom库来实现这些功能。首先,我们要理解图片处理的基本概念。 图片剪切允许用户选取图像的一部分并保存为新的图像,这在...

    类似谷歌微博的图片剪切 flex+java 源码

    标题中的“类似谷歌微博的图片剪切 flex+java 源码”指的是一个软件开发项目,它模仿了谷歌微博的功能,特别关注图片剪切操作。这个项目采用了混合的技术栈,前端使用了Adobe Flex,后端则用Java进行开发。Flex是一...

    Android图片的旋转,缩放,剪切,存储

    在Android开发中,处理图片是一项常见的任务,包括图片的旋转、缩放、剪切和存储。这些操作在各种应用场景中都很重要,例如用户选择照片、编辑照片或在应用内部显示图片。下面将详细讲解这些知识点。 1. **图片旋转...

    android图片剪切

    在Android平台上,图片剪切是一项常见的功能,广泛应用于各种应用程序,如社交软件、图像编辑工具等。本节将深入探讨如何在Android应用中实现图片剪切功能,包括从相册选择图片和直接拍照获取图片,以及相关的技术...

    java上传并裁剪图片

    以`imgscalr`为例,这是一个专门为Java设计的简单易用的图像缩放库,也可以用于裁剪。下面是一个使用`imgscalr`裁剪图片的例子: ```java import org.imgscalr.Scalr; import java.awt.image.BufferedImage; ...

    安卓头像制作图片圆角剪裁相关-Android图片的旋转缩放剪切存储.rar

    这个压缩包“安卓头像制作图片圆角剪裁相关-Android图片的旋转缩放剪切存储.rar”包含了与这些功能相关的代码示例,虽然未提供全部代码的验证,但它们可以作为学习和参考的资源。 首先,让我们深入理解标题和描述中...

    上传头像图片带预览剪切JAVA版-兼容所有浏览器.zip

    "上传头像图片带预览剪切JAVA版-兼容所有浏览器"是一个典型的Web应用功能,它允许用户选择并预览图片,然后进行剪切操作,最终上传作为自己的头像。这个功能在社交网络、论坛、个人资料编辑等场景中非常常见。下面将...

    Android高级应用源码-Android图片的旋转,缩放,剪切,存储.zip

    Bitmap类的`createScaledBitmap`方法可以用来缩放图片,它可以根据指定的宽度和高度比例来调整图片大小。Matrix类也可以通过`postScale()`方法进行缩放操作。在缩放时,需要考虑保持图片的比例,以防止变形。 3. ...

    android demo图片剪切

    "android demo图片剪切"是一个示例项目,它演示了如何在Android平台上实现图片裁剪功能,包括从相册选择图片进行裁剪以及通过相机拍摄新图片后进行裁剪。 首先,我们要理解Android中的图片裁剪涉及到的关键组件和...

Global site tag (gtag.js) - Google Analytics