栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java实现按比例缩放图片技巧

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java实现按比例缩放图片技巧

java实现按比例缩放图片技巧

案例需求:
根据指定的文件名称,用户给定的缩放比例来完成缩放图片

思路分析:
1、文件对象File
2、BufferedImage构造器: 图像数据的访问的缓冲器

3、用到的API

方法说明
getWidth()返回图像宽度
getHeight()返回图像高度
public Image getScaledInstance(int width, int height, int hints)创建此图像的缩放版本,宽高为0图片显示原本大小
getGraphics()一个新的图形上下文,这是这个图形上下文的副本
public abstract boolean drawImage(Image img,
int x,
int y,
ImageObserver observer)
绘制当前可用的指定图像的大小
dispose()释放文件资源
package com.zcl.newDemo;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;


public class ImageDemo {
    public static void main(String[] args) throws Exception {
        // 1、定义图像文件对象
        File fileImage = new File("file-app\1.jpg");
        // 2、定义图像图像数据的访问的缓冲器
        BufferedImage bufferedImage = ImageIO.read(fileImage);
        // 3、获取图片的原始宽高
        int width = bufferedImage.getWidth();
        int height = bufferedImage.getHeight();
        // 4、获取图片的缩放【宽高都是*了缩放比例的再取整】
        Image scaledInstance = bufferedImage.getScaledInstance(Double.valueOf(width*0.5).intValue(),Double.valueOf(height * 0.5).intValue(),Image.SCALE_DEFAULT);
        // 5、将Image类型转换成BufferedImage对象[BufferedImage.TYPE_INT_ARGB:表示具有8位RGBA颜色成分的整数像素的图像]
        BufferedImage newImage = new BufferedImage(Double.valueOf(width*0.5).intValue(),Double.valueOf(height * 0.5).intValue(),BufferedImage.TYPE_INT_ARGB);
        // 一个新的图形上下文,这是这个图形上下文的副本
        Graphics g = newImage.getGraphics();
        // 绘制图片大小
        boolean b = g.drawImage(scaledInstance, 0, 0, null);
        // 释放文件资源
        g.dispose();
        // 将新的图片文件写入到指定的文件夹中
        ImageIO.write(newImage,"png",new File("缩放图片.png"));
        System.out.println("缩放图片生成成功!");
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号