使用 Java 进行图像处理 - 图像缩放

本文介绍了如何使用Java进行图像缩放,提供了两个方法,分别通过指定缩放比例和目标图像的宽高来实现。利用AffineTransform和AffineTransformOp进行图像处理,并结合RenderingHints优化图像质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:转载时请务必保留以下作者信息和链接
作者:陈维(chenweionline@hotmail.com)作者的网站:http://www.chenwei.mobi

 

/**
     * 图像缩放 - 参数指定目标图缩放比例。
     * 
@param srcImage 源图像对象。
     * 
@param xscale 图像 x 轴(宽度)上的的缩放比例。
     * 
@param yscale 图像 y 轴(高度)上的的缩放比例。
     * 
@param hints 重新绘图使用的 RenderingHints 对象。
     * 
@return 缩放后的图像对象。
     
*/

    
public static BufferedImage scaleJ2D(BufferedImage srcImage, double xscale, double yscale, RenderingHints hints) {
        
        AffineTransform affineTransform 
= new AffineTransform();
        affineTransform.scale(xscale, yscale);
        
        AffineTransformOp affineTransformOp 
= new AffineTransformOp(affineTransform, hints);
        
        
int width = (int)((double)srcImage.getWidth() * xscale);
        
int height = (int)((double)srcImage.getHeight() * yscale);
        BufferedImage dstImage 
= new BufferedImage(width, height, srcImage.getType());
        
        
return  affineTransformOp.filter(srcImage, dstImage);
        
    }

    
    
/**
     * 图像缩放 - 参数指定缩放后的目标图宽高。
     * 
@param srcImage 源图像对象。
     * 
@param dstWidth 目标图的宽度。
     * 
@param dstHeight 目标图的高度。
     * 
@param hints 重新绘图使用的 RenderingHints 对象。
     * 
@return 缩放后的图像对象。
     
*/

    
public static BufferedImage scaleJ2D(BufferedImage srcImage, int dstWidth, int dstHeight, RenderingHints hints) {
        
float xscale = (float) dstWidth / (float) srcImage.getWidth();
        
float yscale = (float) dstHeight / (float) srcImage.getHeight();
        
        
return scaleJ2D(srcImage, xscale, yscale, hints);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值