`
ater
  • 浏览: 49762 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

JAVA实现对图片的缩放

阅读更多

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.FileNotFoundException;

import javax.imageio.ImageIO;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/** *//**
 * 
@author zsy
 *
 
*/

public class ZoomImage ...{
    
private static final Log log = LogFactory.getLog(ZoomImage.class);
    
public static String fileSeparator = System.getProperty("file.separator");
    
    
/** *//**
     * 
     * 
@param filePath(E:\cfimg\userImg\NBCANH5PIOWX\9GZJO8QN1QWX.jpg)
     * 
@param outPutDir(E:\cfimg\userImg\NBCANH5PIOWX\9GZJO8QN1QWX-60-60.jpg)
     * 
@param height
     * 
@param width
     * 
@param replace 是否覆盖已有文件
     * 
@return 生成文件名
     * 
@throws Exception
     * 
@throws FileNotFoundException
     
*/

    
public static void zoomImage(String filePath, String outPutFile, 
            
int width, int height, boolean replace) 
            
throws Exception, FileNotFoundException ...{
        File inPutFile 
= new File(filePath);
        File outPut 
= new File(outPutFile);
        zoomImage(inPutFile, outPut, width, height, replace);
    }

    
    
public static void zoomImage(File inPutFile, File outPutFile, 
            
int width, int height, boolean replace) 
            
throws Exception, FileNotFoundException ...{
        
if (!inPutFile.isFile()) ...{
            log.error(
"文件不存在:" + inPutFile);
            
throw new FileNotFoundException("文件不存在:" + inPutFile);
        }

        
if (!outPutFile.exists() || replace) ...{
            zoomImage(inPutFile, outPutFile, height, width);
        }

    }

    
    
/** *//**
     * 按指定大小缩放图片
     * 
@param inPutFile
     * 
@param outPutFile
     * 
@param height
     * 
@param width
     * 
@throws Exception
     
*/

    
public static void zoomImage(File inPutFile, File outPutFile, 
            
int width, int height) throws Exception ...{
        BufferedImage source 
= ImageIO.read(inPutFile);
        
if (source == null...{
            
return;
        }

        
double hx = (double)height / source.getHeight();
        
double wy = (double)width / source.getWidth();
        
if (hx < wy) ...{
            wy 
= hx;
            width 
= (int)(source.getWidth() * wy);
        }
 else ...{
            hx 
= wy;
            height 
= (int)(source.getHeight() * hx);
        }

        
        
int type = source.getType();
        BufferedImage target 
= null;
        
if (type == BufferedImage.TYPE_CUSTOM) ...// handmade
            ColorModel cm = source.getColorModel();
            WritableRaster raster 
= 
                cm.createCompatibleWritableRaster(width, height);
            
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
            target 
= new BufferedImage(cm, raster, alphaPremultiplied, null);
        }
 else ...{
            target 
= new BufferedImage(width, height, type);
        }

        Graphics2D g 
= target.createGraphics();
        
// smoother than exlax:
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BICUBIC);

        g.drawRenderedImage(source, AffineTransform.getScaleInstance(wy, hx));
        g.dispose();

        
try ...{
            ImageIO.write(target, 
"JPEG", outPutFile);
        }
 catch (Exception ex) ...{
            ex.printStackTrace();
        }

    }

    
    
    
public static void main(String arg[]) throws Exception ...{
        zoomImage(
"c:/V.gif""c:/V_50_50.gif"5050false);
    }

}

 

分享到:
评论
3 楼 hrw1985 2008-07-23  
还是先谢谢!
2 楼 hrw1985 2008-07-23  
不知道能用不
1 楼 dodomail 2007-08-08  
非常好用,支持一下!

相关推荐

    java实现图片缩放

    本文将深入探讨如何使用ImageMagick库在Java中实现图片的缩放功能。 ImageMagick是一个强大的开源跨平台命令行工具集,用于处理图像。它支持超过100种图像格式,包括JPEG、PNG、GIF、BMP等。同时,ImageMagick也...

    Java图像缩放 图片缩放

    在Java编程领域,图片处理是一项常见的任务,其中图像缩放是尤为重要的操作。当我们需要调整图片大小,以适应不同的应用场景,如网页、移动设备或打印等,就需要进行图像缩放。本文将深入探讨Java中实现图像缩放的...

    图片缩放、压缩技术java实现

    本教程将专注于使用Java语言实现图片的等比缩放和压缩技术,以满足存储和传输的需求。下面,我们将深入探讨这些关键知识点。 首先,我们来了解等比缩放。等比缩放是指在改变图片尺寸时,保持其长宽比不变,防止图片...

    批量缩放图片的Java实现

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

    java图片缩放处理

    一、图片缩放 1. 使用`BufferedImage`类: Java的`java.awt.image`包提供了`BufferedImage`类,可以用来读取、创建和操作图像。通过`Graphics2D`对象,我们可以对`BufferedImage`进行缩放操作。以下是一个简单的...

    java 图片缩放处理

    在Java中实现图片缩放通常涉及以下步骤: 1. **读取图片**:使用`ImageIO.read()`方法从指定的文件路径或输入流中读取图片,将其转换为`BufferedImage`对象。 ```java File file = new File("path/to/your/image....

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

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

    java实现的图片防篡改功能

    在这个项目中,我们主要探讨如何利用Java实现图片的防篡改功能,通过生成图片的唯一标识(哈希值)并进行比对来检测图片是否被篡改。 1. **哈希算法**: 哈希(Hash)函数是一种将任意长度的数据映射为固定长度...

    java从图片缩放

    总之,Java提供了强大的图像处理能力,通过理解`BufferedImage`和`Graphics2D`,我们可以方便地实现图片缩放功能,同时考虑到缩放质量、性能和代码的可维护性。在进行图像处理时,记得根据项目需求选择合适的缩放...

    java利用双线性算法实现图片缩放

    采用双线性算法实现图片的缩放,今天,经过多次实现终于完成了图片的缩放,来给大家分享一下

    java实现图片中心放大、缩小、移动、鼠标拖移

    实现图片的中心放大和缩小,我们可以维护一个缩放因子,并在每次调整大小时计算新的图片尺寸,保持图片的中心点不变。这可以通过改变`ImageIcon`的尺寸来实现。同时,需要更新显示组件(如`JLabel`)的尺寸以适应...

    Android SurfaceView 实现图片缩放 滑动

    在实现图片缩放和滑动时,我们需要利用这一点来确保流畅的用户体验。 1. **SurfaceView的创建与初始化**: 在布局文件中添加SurfaceView,并在Activity的onCreate()方法中找到并初始化它。设置SurfaceHolder的回调...

    java实现图片的上传以及根据需要缩小显示

    以上就是使用Java实现图片上传并按需缩放显示的基本步骤。实际应用中,还需要考虑错误处理、内存管理、文件安全、性能优化等方面的问题。提供的文档"图片上传显示(缩小图片).doc"应该包含了更详细的代码示例和具体...

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

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

    java绘图 图片缩放 实例代码

    在这里,我们将主要探讨如何使用Java AWT中的Graphics2D类来实现图片的缩放。 `ScaleImageDemo.java` 是一个Java应用程序,它展示了如何加载图片(例如 `2.jpg`),然后对其进行缩放。下面我们将深入解析这个过程。...

    java gif图片缩放代码及帮助文档

    Java GIF图片缩放是开发过程中常见的一项任务,尤其是在处理动态图像时。GIF是一种支持动画的格式,广泛用于网络上。在Java中处理GIF图片,我们通常会使用到一些库,比如`gif4j`,这是一个轻量级且功能强大的Java库...

    图片缩放实现

    本文将详细讨论如何实现图片的缩放功能,基于提供的"图片缩放实现"的标题和描述,我们可以推断这是一个关于图片缩放效果的示例项目,名为"imageViewdemo"。 图片缩放涉及到图像处理的基本概念,主要目标是调整图片...

    JAVA实现的图片大小随意拉动调整

    本示例中的"JAVA实现的图片大小随意拉动调整"着重讲解了如何利用Swing来实现图片的动态缩放功能,让用户可以自由调整图片的大小。这个功能在很多应用中都非常实用,比如图像查看器、编辑器或者任何需要展示可调整...

Global site tag (gtag.js) - Google Analytics