图片压缩按比例压缩

    /**
     * 按比例压缩
     */
    public Bitmap zipImageChiCun(String imgPath){
        //创建图片的参数,用来获取图片的信息
        BitmapFactory.Options options = new BitmapFactory.Options();
        // 开始读入图片,此时把options.inJustDecodeBounds 设回true,只读入尺寸
        options.inJustDecodeBounds = true;
            //读取图片的尺寸
            Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
            options.inJustDecodeBounds = false;//正式读取图片,供后面使用
            //得到图片的尺寸
            int w = options.outWidth;//得到宽
            int h = options.outHeight;//得到高
            //设置按尺寸压缩,要压缩到的分辨率
            float x = 100;//宽
            float y = 200;//高
            int be = 1;//缩放比例,1表示不缩放
            if(w > h && w>x){//按宽缩放
                be = (int)(w/x);//计算缩放比例
            }else{
                be = (int)(h/y);//计算缩放比例
            }
            if(be <= 0){
            be = 1;
        }
        options.inSampleSize = be;//设置缩放比例
        //按计算好的尺寸,处理图片,按尺寸压缩
        Bitmap bitmap1 = BitmapFactory.decodeFile(imgPath,options);
        return bitmap1;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Java 中的 ImageIO 和 BufferedImage 类来实现按宽度等比例压缩图片的功能。具体实现步骤如下: 1. 使用 ImageIO 类的 read 方法读取原始图片文件,并将其保存为 BufferedImage 对象。 2. 获取原始图片的宽度和高度。 3. 计算等比例缩小后的宽度和高度,其中宽度为指定的压缩宽度,高度按比例计算。 4. 创建一个新的 BufferedImage 对象,设置其宽度和高度为计算出来的缩小后的宽度和高度。 5. 使用 Graphics2D 类的 drawImage 方法将原始图片绘制到新的 BufferedImage 对象上,并按比例缩小。 6. 使用 ImageIO 类的 write 方法将新的 BufferedImage 对象保存为压缩后的图片文件。 下面是一个简单的 Java 代码示例: ```java import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageCompressor { public static void compressImage(String srcFilePath, String destFilePath, int width) throws Exception { // 读取原始图片文件 BufferedImage srcImage = ImageIO.read(new File(srcFilePath)); // 获取原始图片的宽度和高度 int srcWidth = srcImage.getWidth(); int srcHeight = srcImage.getHeight(); // 计算等比例缩小后的宽度和高度 int destWidth = width; int destHeight = (int) (srcHeight * ((double) destWidth / srcWidth)); // 创建一个新的 BufferedImage 对象 BufferedImage destImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB); // 绘制原始图片到新的 BufferedImage 对象上,并按比例缩小 Graphics2D g = destImage.createGraphics(); g.drawImage(srcImage, 0, 0, destWidth, destHeight, null); g.dispose(); // 保存压缩后的图片文件 ImageIO.write(destImage, "jpg", new File(destFilePath)); } public static void main(String[] args) throws Exception { compressImage("original.jpg", "compressed.jpg", 800); } } ``` 上面的代码将原始图片文件 "original.jpg" 压缩成宽度为 800 像素的图片,并保存为 "compressed.jpg" 文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值