首页 > 代码库 > 微信图片分享遇到 checkArgs fail, thumbData is invalid

微信图片分享遇到 checkArgs fail, thumbData is invalid

该问题主要是微信图片限制32K以内的原因,可将bmpToByteArray方法进行进行改写。

原方法是:

    /**     * 得到Bitmap的byte     * @author netcorner     * @param bmp     * @return     */    private  byte[] bmpToByteArray(Bitmap bmp) {        ByteArrayOutputStream output = new ByteArrayOutputStream();        bmp.compress(Bitmap.CompressFormat.PNG, 100, output);        byte[] result = output.toByteArray();        try {            output.close();        } catch (Exception e) {            e.printStackTrace();        }        return result;    }

 

改进的方法

    /**     * Bitmap转换成byte[]并且进行压缩,压缩到不大于maxkb     * @param bitmap     * @param maxkb     * @return     */    public static byte[] bmpToByteArray(Bitmap bitmap, int maxkb) {        ByteArrayOutputStream output = new ByteArrayOutputStream();        bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);        int options = 100;        while (output.toByteArray().length > maxkb&& options != 10) {            output.reset(); //清空output            bitmap.compress(Bitmap.CompressFormat.JPEG, options, output);//这里压缩options%,把压缩后的数据存放到output中            options -= 10;        }        return output.toByteArray();    }

 

微信图片分享遇到 checkArgs fail, thumbData is invalid