博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android图片处理
阅读量:5015 次
发布时间:2019-06-12

本文共 1433 字,大约阅读时间需要 4 分钟。

1 读取图片

 

 


 

2 Drawable和Bitmap之间的转换 

    2.1  Drawable >> Bitmap

    我们经常提到的Drawable只是一个抽象类,开发过程中我们是实际打交道的是它的派生类,例如BitmapDrawable(png图片)、GradientDrawable(xml图片)等。如果给定的drawable是BimapDrawable的实例,我们可以直接调用它的getBitmap方法,否则就创建一个bitmap,并把drawable绘制到bitmap上。

public static final Bitmap drawableToBitmap(Drawable drawable) {        if (drawable instanceof BitmapDrawable) {            return ((BitmapDrawable) drawable).getBitmap();        } else {            //根据创建一个和drawable同尺寸的bitmap            Bitmap bitmap = Bitmap.createBitmap(                    drawable.getIntrinsicWidth(),                    drawable.getIntrinsicHeight(),                    //判断drawable的像素格式ARGB or RGB,即有没有透明度  如果没有透明度的话,选择RGB_565,节省了存储透明度的空间                    drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);            //以bitmap为底板创建画布,draw在canvas上实际上就是draw在了bitmap上            Canvas canvas = new Canvas(bitmap);            //draw()实际上是根据drawable的bounds来确定绘制位置,所以要先设置bounds            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());            //把drawable绘制在画布上            drawable.draw(canvas);            return bitmap;        }    }

    上面的代码涉及到了Bitmap.Config,关于它的详细介绍可以参考这篇文章:

    2.2 Bitmap >> Drawable

    通过BitmapDrawable即可将Bitmap转化为Drawable:

public static final Drawable bitmapToDrawable(Bitmap bitmap){    return new BitmapDrawable(bitmap); }

 

转载于:https://www.cnblogs.com/hsji/p/5114185.html

你可能感兴趣的文章
多任务——进程
查看>>
WCF:如何将net.tcp协议寄宿到IIS
查看>>
WebAPI HelpPage支持area
查看>>
Path元素
查看>>
php_soap扩展应用
查看>>
第二百三十一节,Bootstrap 介绍
查看>>
vi/vim 三种模式的操作
查看>>
JAVA面向对象三大特性总结
查看>>
guid
查看>>
Python中出现“TabError: inconsistent use of tabs and spaces in indentation”问题的解决
查看>>
ajax请求
查看>>
js学习总结----DOM增删改和应用
查看>>
希尔伯特矩阵(Hilbert matrix)
查看>>
(20)sopel算法
查看>>
学习总结 javascript 闭包
查看>>
实验吧一个小坑注入
查看>>
【 D3.js 高级系列 — 8.0 】 打标
查看>>
Mac必备软件推荐
查看>>
Android Gson深入分析
查看>>
display:flow-root
查看>>