Android分享微信小程序的图片优化

本文记录了在微信小程序中分享图片时遇到的压缩和裁剪问题,包括5:4比例裁剪、质量压缩及Canvas绘制压缩方法。重点在于解决图片压缩后转成byte数组导致的大小超过128KB限制的问题,并提供了具体实现代码。

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

微信规定,分享小程序展示的图片应该在 128KB 以内,同时图片默认展示比例为 5:4。
所以需要对传入的图片进行裁剪和压缩。关于图片压缩有个很大的坑,改了一晚上才好,所以记录一下,先填坑以后再优化。

参考了其他大神的博客,整理出了下面具体的实现方法:
方法一:

/**
 * 按5:4裁切图片
 */
private static Bitmap cropImage5To4(Bitmap srcBitmap) {
   
    if (srcBitmap == null) {
   
        return null;
    }

    int w = srcBitmap.getWidth(); // 得到图片的宽,高
    int h = srcBitmap.getHeight();

    float srcW = w > h * 1.25f ? h * 1.25f : w;
    float srcH = w > h * 1.25f ? h : w / 1.25f;

    float retX = w > h * 1.25f ? (w - h * 1.25f) / 2 : 0;//居中裁剪
    float retY = w > h * 1.25f ? 0 : (h - w / 1.25f) / 2f;

    //以下这句是关键
    return Bitmap.createBitmap(srcBitmap, Math.round(retX), Math.round(retY), Math.round(srcW), Math.round(srcH), null, false);
}


/**
 * 判断图片类型
 */
public static int getPicTypeByUrl(String url) {
   
    int picType = -1;
    if (url == null) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值