zoukankan      html  css  js  c++  java
  • 微信图片分享遇到 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();
        }
  • 相关阅读:
    docker安装
    [golang grpc] 框架介绍
    docker介绍
    Visual Studio Code常用设置
    eclipse常用设置
    [golang note] 网络编程
    [golang note] 工程组织
    [golang note] 协程通信
    [golang note] 协程基础
    [golang note] 接口使用
  • 原文地址:https://www.cnblogs.com/netcorner/p/6882637.html
Copyright © 2011-2022 走看看