Android中的图片按比例大小压缩代码
来源:互联网 发布:加工中心刚性攻丝编程 编辑:程序博客网 时间:2024/05/16 04:50
/** * 图片按比例大小压缩(用于二维码) * * @param path * @return */public static Bitmap getDecordeImage(Context context, String srcPath){if (srcPath == null){return null;}File file = new File(srcPath);if (!file.exists()){return null;}BitmapFactory.Options newOpts = new BitmapFactory.Options();// 开始读入图片,此时把options.inJustDecodeBounds 设回true了newOpts.inJustDecodeBounds = true;Bitmap bitmap = BitmapFactory.decodeFile(srcPath, newOpts);// 此时返回bm为空newOpts.inJustDecodeBounds = false;int w = newOpts.outWidth;int h = newOpts.outHeight;// 设置手机的宽高float hh = 800f;// 这里设置高度float ww = 480f;// 这里设置宽度// 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可int be = 1;// be=1表示不缩放if (w > h && w > ww){// 如果宽度大的话根据宽度固定大小缩放be = (int) (newOpts.outWidth / ww);} else if (w < h && h > hh){// 如果高度高的话根据宽度固定大小缩放be = (int) (newOpts.outHeight / hh);}if (be <= 0)be = 1;newOpts.inSampleSize = be;// 设置缩放比例// 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了bitmap = BitmapFactory.decodeFile(srcPath, newOpts);return compressImage(bitmap);// 压缩好比例大小后再进行质量压缩}/** * 图片按比例大小压缩方法(根据Bitmap图片压缩) * * @param image * @return */public static Bitmap getImage(Bitmap image){ByteArrayOutputStream baos = new ByteArrayOutputStream();image.compress(Bitmap.CompressFormat.JPEG, 100, baos);if (baos.toByteArray().length / 1024 > 1024){// 判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出baos.reset();// 重置baos即清空baosimage.compress(Bitmap.CompressFormat.JPEG, 50, baos);// 这里压缩50%,把压缩后的数据存放到baos中}ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());BitmapFactory.Options newOpts = new BitmapFactory.Options();// 开始读入图片,此时把options.inJustDecodeBounds 设回true了newOpts.inJustDecodeBounds = true;Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);newOpts.inJustDecodeBounds = false;int w = newOpts.outWidth;int h = newOpts.outHeight;// 现在主流手机比较多是800*480分辨率,所以高和宽我们设置为float hh = 800f;// 这里设置高度为800ffloat ww = 480f;// 这里设置宽度为480f// 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可int be = 1;// be=1表示不缩放if (w > h && w > ww){// 如果宽度大的话根据宽度固定大小缩放be = (int) (newOpts.outWidth / ww);} else if (w < h && h > hh){// 如果高度高的话根据宽度固定大小缩放be = (int) (newOpts.outHeight / hh);}if (be <= 0)be = 1;newOpts.inSampleSize = be;// 设置缩放比例// 重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了isBm = new ByteArrayInputStream(baos.toByteArray());bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);if (isBm != null){try{isBm.close();} catch (IOException e){// TODO Auto-generated catch blocke.printStackTrace();}}if (image != null && !image.isRecycled()){image.recycle();image = null;}return compressImage(bitmap);// 压缩好比例大小后再进行质量压缩}
0 0
- Android中的图片按比例大小压缩代码
- 图片压缩按比例压缩
- 上传图片按比例压缩
- 图片按比例压缩
- Android 自定义imageview图片高度固定大小宽度按比例自适应
- Android 自定义imageview 图片宽度固定大小高度按比例自适应
- Android 自定义imageview 图片高度固定大小宽度按比例自适应
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- java按比例压缩图片的源代码,用java如何把图片处理到指定大小
- jsp页面按比例压缩图片
- android 图片质量,大小压缩
- android 代码压缩图片
- 最新javascript自动按比例显示图片,按比例压缩图片显示
- 最新javascript自动按比例显示图片,按比例压缩图片显示
- C#图片截取压缩(百分比压缩/大小压缩)实现代码
- C#图片截取压缩(百分比压缩/大小压缩)实现代码
- C#图片截取压缩(百分比压缩/大小压缩)实现代码
- Android中的图片压缩
- 协方差矩阵的详细说明
- ReportStudio入门教程(五十三) - 下钻功能(向下追溯)
- 嵌入式 csdn中搜索自己博客的内容
- 互联网架构设计的几个原则
- 在Gnu/Linux中使用超级用户执行程序的方法
- Android中的图片按比例大小压缩代码
- ChkBugReport 相关
- Get Level of a node in a Binary Tree
- 关于mac osx上安装 freetds unixodbc 及安装碰到的问题
- Http 远程调用
- 八叉树及K-D树的应用和实现
- redis---使用中常见问题
- Python邮件相关模块之poplib
- 尾:在行尾加入文本 20140630