• Android中 Bitmap和Drawable相互转换的方法


    1、Drawable --> Bitmap

    1.     Bitmap drawable2Bitmap(Drawable drawable) {  
    2.         if (drawable instanceof BitmapDrawable) {  
    3.             return ((BitmapDrawable) drawable).getBitmap();  
    4.         } else if (drawable instanceof NinePatchDrawable) {  
    5.             Bitmap bitmap = Bitmap  
    6.                     .createBitmap(  
    7.                             drawable.getIntrinsicWidth(),  
    8.                             drawable.getIntrinsicHeight(),  
    9.                             drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
    10.                                     : Bitmap.Config.RGB_565);  
    11.             Canvas canvas = new Canvas(bitmap);  
    12.             drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),  
    13.                     drawable.getIntrinsicHeight());  
    14.             drawable.draw(canvas);  
    15.             return bitmap;  
    16.         } else {  
    17.             return null;  
    18.         }  
    19.     }  


    2、从资源中获取的Drawable --> Bitmap

    1.     Resources res = getResources();  
    2.     Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.pic);  

    3、Bitmap --> Drawable

    1.     Drawable bitmap2Drawable(Bitmap bitmap) {  
    2.         return new BitmapDrawable(bitmap);  
    3.     }  

    4、Bitmap --> byte[]

    1.     byte[] Bitmap2Bytes(Bitmap bm) {  
    2.         ByteArrayOutputStream baos = new ByteArrayOutputStream();  
    3.         bm.compress(Bitmap.CompressFormat.PNG, 100, baos);  
    4.         return baos.toByteArray();  
    5.     }  

    5、 byte[] --> Bitmap

      1.     Bitmap Bytes2Bimap(byte[] b) {  
      2.         if (b.length != 0) {  
      3.             return BitmapFactory.decodeByteArray(b, 0, b.length);  
      4.         } else {  
      5.             return null;  
      6.         }  
      7.     }  
  • 相关阅读:
    「两千年中公历转换」数据库介绍
    [转]Web中使用Word控件。(DSOFramer )
    解决DRIVE_IRQL_NOT_LESS_OR_EQUAL的方法
    Html Img的几个属性_存在个问题
    不错的开源C#博客_BlogEngine.net
    [转]引用指定的namespace 解决命名空间冲突的错误
    [原]不太完善的图像合并程序VS2005CSharp_有目录监控_TIF_JPG输出
    [转]JS小游戏_9格的棋
    JS小游戏_能坚持几秒
    [转]前台JS限制上传图片质量大小和尺寸!
  • 原文地址:https://www.cnblogs.com/ldq2016/p/7058127.html
Copyright © 2020-2023  润新知