BitmapEditor 高效优雅的的Android图片压缩框架

BitmapEditor 高效优雅的的Android图片压缩框架,第1张

概述简介BitmapEditor是一款高效简单的图片压缩处理工具,它可以做到:接收来自File,Bitmap,ResId,ByteBuffer,byte[]中的图像数据然后转换为byte[],Bitmap,File对图片进行分辨率缩放对图片进行内存大小的压缩对图片进行颜色格式的改变为什么使用它?它的有
简介BitmapEditor是一款高效简单的图片压缩处理工具,它可以做到:    接收来自file,Bitmap,ResID,ByteBuffer,byte[]中的图像数据然后转换为    byte[],Bitmap,file    对图片进行分辨率缩放    对图片进行内存大小的压缩    对图片进行颜色格式的改变    为什么使用它?它的有点有:    响应式函数设计(参考GlIDe的设计),调用方便    对处理过程了同步,异步    方便导入使用为了方便导入使用,所有代码都放到BitmapEditor.java文件下使用,并且所有导入均为AndroID原生函数,所有你只需要复制代码使用即可。Tips:这里图片的异步处理加载采用的是开启了Thread来进行运行,同时提供Rxjava作为异步处理加载方式,这里具体的使用详见DemoBitmapEditor以及使用Demo地址如下:https://github.com/diskyZhs/BitmapEdtior目前,工具刚刚编写完成,可能存在一些考虑不当以及不合理的地方,欢迎指出。使用初始化BitmapEditor,调用BitmapEditor.init()使用from函数加载来自不同数据源的BitmapEditor.init().from(String filePtah)BitmapEditor.init().from(file file)BitmapEditor.init().from(byte[] bmpData)BitmapEditor.init().from(ByteBuffer bmpBuffer)BitmapEditor.init().from(Bitmap bmp)BitmapEditor.init().from(int resID, Context context)添加图片处理过程选择完数据源之后就是添加对图片的 *** 作paserResolution函数使用paserResolution函数来压缩图片的分辨率,参数单位为pxBitmapEditor.init().from(bmp).paserResolution(1920,1080)这里回对图片按照期望的分辨率直接进行缩放,所以最终的图片的长宽比可能发生改变setDesireRatio函数使用setDesireRatio函数来设置期望的长宽比,当你缩放图片分辨率的时候   ```BitmapEditor.init().from(bmp).paserResolution(1920,1080).setDesireRatio(1.60)    BitmapEditor.init().from(bmp).setDesireRatio(0.75)传入的参数为宽高比,缩放后的图片的宽/高setResolutionLarger函数当你设置了Ratio也就是宽高比的时候,使用setResolutionLarger函数来设置缩放后的图片的分辨率是否大于给予的分辨率BitmapEditor.init().from(bmp).paserResolution(1920,1080).setDesireRatio(1.60).setResolutionLarger(true)这里也就是说当你选择的图片与你期望缩放后图片分辨率不一致的时候,如果setResolutionLarger(true),也就是说明你缩放后的图片的分辨率是大于你期望的分辨率的。反之,亦然。paserResolutionKeepRatio函数如果你希望按照一定的长宽比来缩放图片,你可以使用paserResolutionKeepRatio(int wIDth, int height, float ratio, boolean isLargerResolution)函数。也就是说,如果我希望将当前图片按照宽/高 1.60,缩放后分辨率大于1920,1080,我可以如下BitmapEditor.init().from(bmp).paserResolution(1920,1080).setDesireRatio(1.60).setResolutionLarger(true)上述函数等价于BitmapEditor.init().from(bmp).paserResolutionKeepRatio(1920,1080,1.60,true)limitSize函数如果你期望将Bitmap的大小压缩到1M以内,你可以使用limitSize函数,如下BitmapEditor.init().from(bmp).limitSize(1024)参数单位是kbsetcolorMode函数这里是设置压缩后图片的颜色格式,目前可选为ARGB_8888和RGB_565,如下BitmapEditor.init().from(bmp).setcolorMode(BitmapEditor.color_MODE_RGB565)注意,这里颜色格式的改变会导致最后生成图片的大小,一般都是为了压缩图片大小,将图片颜色格式设置为RGB565选择图片输出格式以及同步异步你可以使用asBmp(),asfile()以及asByteArray()函数来选择不同的输出格式默认的是使用的异步加载,所以你需要在回调中取得图片处理的结果你可以使用Listener函数添加回调,如下    BitmapEditor.init()    .from(bmp)    .paserResolution(1920,1080)    .setDesireRatio(1.60)    .setResolutionLarger(true)    .Listener(Listener)    .asBmp();或者    BitmapEditor.init()    .from(bmp)    .paserResolution(1920,1080)    .setDesireRatio(1.60)    .setResolutionLarger(true)    .asBmp(Listener); 如果你需要同步加载直接取得结果,你可以使用asBmpSync(),asfileSync()以及asByteArraySync()函数那么你直接取得转变后结果,如下    Bitmap result =    BitmapEditor.init()    .from(bmp)    .paserResolution(1920,1080)    .setDesireRatio(1.60)    .setResolutionLarger(true)    .asBmpSync(); 当然,函数是线程阻塞的。注意所有的对图片的处理是热启动,只有当调用As函数生成图片时候才会生效。其次,为了方便对于异步处理加载,提供一种使用Rxjava框架进行异步加载,你如果在项目中使用的话,还需自己导入框架BitmapEditor以及使用Demo地址如下:https://github.com/diskyZhs/BitmapEdtior最后,问题还有很多,欢迎提出,我会予以及时的修改!————————————————版权声明:本文为CSDN博主「W-O-M-W」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zhs4430169/article/details/71427514

 

总结

以上是内存溢出为你收集整理的BitmapEditor 高效优雅的的Android图片压缩框架全部内容,希望文章能够帮你解决BitmapEditor 高效优雅的的Android图片压缩框架所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064365.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存