这里将的是只使用 Android 中自带的库进行简单的图像缩放和压缩, 如果对图像处理有更多要求的话, 建议使用其他的库, 这里使用自带库进行操作适合图片处理没不是主要逻辑的项目, 简单的只是想缩小或压缩图片.
压缩图片
这里简单的将一个图片文件转换为 Bitmap ,并且在转换的过程中对图片质量进行简单压缩:
bitmap.compress(Bitmap.CompressFormat.JPEG, int quality, FileOutputStream fos);
注意这里的 quality 的范围为 0~100 ,经过测试如果这个值设置比较低的话图片会非常不清晰, 基本不可用, 0~100 的值可以参考类似Photoshop之类输出图片时选择的图片质量.
此方法只是单纯对图片质量进行处理, 并不会改变其大小, 如果需要改变图片文件的大小, 最好是使用缩放, 这个可以在保证一定的图片清晰度的情况下减少了图片大小, 毕竟手机屏幕就那么点, 你把 2000px * 1000px 的图片改为 500px * 250px 在手机用户看来也不会有太严重的不适感, 而如果你只设置图片的 quality 想来改变文件大小, 你最后会发现得到的是一个 2000px * 1000px 的几个色块.
缩放图片
先提代码看看:
/** * 保持长宽比缩小Bitmap * * @param bitmap * @param maxWidth * @param maxHeight * @return */ public Bitmap resizeBitmap(Bitmap bitmap, int maxWidth, int maxHeight) { int originWidth = bitmap.getWidth(); int originHeight = bitmap.getHeight(); // no need to resize if (originWidth < maxWidth && originHeight < maxHeight) { return bitmap; } int width = originWidth; int height = originHeight; // 若图片过宽, 则保持长宽比缩放图片 if (originWidth > maxWidth) { width = maxWidth; double i = originWidth * 1.0 / maxWidth; height = (int) Math.floor(originHeight / i); bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false); } // 若图片过长, 则从上端截取 if (height > maxHeight) { height = maxHeight; bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height); } // Log.i(TAG, width + " width"); // Log.i(TAG, height + " height"); return bitmap; }
这里演示是将图片缩小到一个max范围内, 而不是直接将变成硬性的变成某个尺寸的图片, 因为一般来说这种设置max的方式符合大部分需要, 如果必须将图片变成某个指定尺寸可以直接使用 Bitmap.createScaledBitmap 方法, 也是下面要介绍的.
此函数主要就是使用了 Bitmap 的两个静态方法, 一个是:
public static Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter)
此方法就会把一个 Bitmap 图片 缩放 成指定的尺寸.
剪切图片
而这里还使用到了另一个方法:
public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height)
此处使用该方法的目的是 剪切 图片, 就是只取图片的某个区域, 从而达到 剪切 图片的效果.
相关推荐
Android 使用libyuv对Android yuv数据进行缩放,旋转,镜像,裁剪等操作
Biscuit Biscuit是一个便捷的android 压缩图片库。由于微信是行业标杆,所以在写本库的时候,特意研究了下微信的压缩效果,以在小米NOTE LTE上为例,经过观察...上图中八张图片压缩数据对比: 原图 Biscuit Wech
实现分享微信小程序、图片到微信朋友圈、微信好友。解决因图片过大出现分享失败,内置图片压缩功能,内置截图功能。
kotlin 图片压缩工具类 1.比例缩放图片 2.质量压缩 3.图片按比例大小压缩方法 4.把字节数组保存为一个文件 5. 旋转图片 6.设置缩略图 7.按宽/高缩放图片到指定大小并进行裁剪得到中间部分图片
一个帮助您完成从缩略图到原图无缝过渡转变的神奇组件,缩略图到原图的无缝过渡转变,功能体系仿照并涵盖 ios 版本的 QQ、微信朋友圈、新浪微博的图片浏览功能(请使用32位解压缩工具)。
Android中图片的缩放处理,缓存处理,缓存包含http请求的缓存,内存缓存,磁盘缓存的处理等
一款Android 便捷高效图片压缩库,更多自定义,灵活配置,缩放部分逆向微信朋友圈压缩效果推算得来,效果非常接近! 可以单张或者批量进行压缩 可以自定义保存路径 可以自定义压缩后是否使用原图名字命名 可以自定义...
主要介绍了Android 使用Glide加载网络图片等比例缩放的实现方法,需要的朋友可以参考下
本文给大家分享android图片压缩的三种方法并压缩到指定大小,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
Android中照相,从相册选取照片,压缩,保存到手机内存,展示到界面,点击放大,上传。(含demo),这个功能基本每个项目都会用到。
主要介绍了Android实现简单图片压缩的方法,详细分析了Android针对图片的读取、缩放及保存等操作技巧,需要的朋友可以参考下
主要介绍了Android中3种图片压缩处理方法,本文讲解了质量压缩方法、获得缩略图、图片缩放三种方法并分别给出示例代码,需要的朋友可以参考下
上面的gif中,依次进行了拖动——>触摸右上角放大,缩小——>触摸上方与右测边缘——>双指放大缩小。 2 使用步骤 2.1 布局。外层一个LinearLayout,里面一个自定义的控件DragScaleView,为了能够更清楚的看到控件的...
android图片处理,缩放、压缩、剪切、水印、黑白、旋转等10多种特效
整理文档,搜刮出一个Android图片实现压缩处理的实例代码,稍微整理精简一下做下分享。 详解: 1.获取本地图片File文件 获取BitmapFactory.Options对象 计算原始图片 目标图片宽高比 计算输出的图片宽高 2.根据宽...
核心思想是通过BitmapFactory.Options来缩放图片,主要是用到了它的inSampleSize参数(采样率) 当inSampleSize为1的时候,采样后的图片大小为图片的原始大小; 当inSampleSize为2的时候,采样后的图片的宽和高是...
这是一个用于Android网络图片下载及其处理的示例源代码,非常适合Android初级开发人员使用,尤其是对下载图片的缩放等进行了详细的示范,希望大家学以致用!
在做android图片加载的时候,由于手机屏幕受限,很多大图加载过来的时候,我们要求等比例缩放,接下来小编给大家带来了Android 使用Picasso加载网络图片等比例缩放的实现方法,感兴趣的朋友一起看看吧
{"取色器","图片压缩","屏幕截图","放大镜","WebView_JS交互","PhoneGap","代码编辑器" ,"android 支持的系统级服务表 ","获取系统应用列表","图片左右滑动效果","图片左右滑动效果(带按钮)", "Android实现图表...
主要为大家详细介绍了android调用原生图片裁剪后图片尺寸缩放的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下