`

android传递图片和图片与byte转换

 
阅读更多
activity 之间直接传递图片时
  Intent intent = new Intent(this, NewActivity.class);
  intent.putExtra("BitmapImage", bitmap);
  Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

去掉seekBarBackground
  创建一个blank drawable 然后satBar.setProgressDrawable(invisibleBackground);
  也许这样也可以setBackgroundDrawable(null)


1、Drawable → Bitmap
public static Bitmap drawableToBitmap(Drawable drawable) {  
          
        Bitmap bitmap = Bitmap  
                        .createBitmap(  
                                        drawable.getIntrinsicWidth(),  
                                        drawable.getIntrinsicHeight(),  
                                        drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
                                                        : Bitmap.Config.RGB_565);  
        Canvas canvas = new Canvas(bitmap);  
        //canvas.setBitmap(bitmap);  
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
        drawable.draw(canvas);  
        return bitmap;  
} 

public static Bitmap drawableToBitmap(Drawable drawable) {
       
        Bitmap bitmap = Bitmap
                        .createBitmap(
                                        drawable.getIntrinsicWidth(),
                                        drawable.getIntrinsicHeight(),
                                        drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
                                                        : Bitmap.Config.RGB_565);
        Canvas canvas = new Canvas(bitmap);
        //canvas.setBitmap(bitmap);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        drawable.draw(canvas);
        return bitmap;
}

2、从资源中获取Bitmap



Java代码 
Resources res=getResources();  
 
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); 

Resources res=getResources();

Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);

3、Bitmap → byte[]



Java代码 
private byte[] Bitmap2Bytes(Bitmap bm){  
    ByteArrayOutputStream baos = new ByteArrayOutputStream();    
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);    
    return baos.toByteArray();  
   } 

private byte[] Bitmap2Bytes(Bitmap bm){
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos); 
    return baos.toByteArray();
   }
4、 byte[] → Bitmap

Java代码 
private Bitmap Bytes2Bimap(byte[] b){  
            if(b.length!=0){  
                return BitmapFactory.decodeByteArray(b, 0, b.length);  
            }  
            else {  
                return null;  
            }  
      }  

 

分享到:
评论

相关推荐

    Activity间图片传递(3种方法)

    在Android开发中,Activity间的通信是至关重要的,其中包括...这三种方法各有优缺点,开发者应根据实际需求和图片大小来选择合适的方式。在处理图片传递时,还需注意内存管理和避免内存泄漏,确保应用的稳定性和性能。

    Image 和Byte数组之间转换

    ### Image与Byte数组之间的转换知识点详解 #### 一、知识点概览 在处理图像数据时,经常需要将图像对象(Image)转换为字节数组(Byte[])或者反之进行操作。这样的需求常见于网络传输、文件存储以及其他需要将图像...

    转换Image数据为byte数组

    下面,我们将深入探讨如何在Java中实现图像数据与字节数组之间的相互转换,并分析这一过程中的关键步骤和技术细节。 ### 转换Image数据为byte数组 #### 方法一:`imageToBytes`函数解析 在Java中,将`Image`对象...

    Android-byte数据序列化成对象对象转化成二进制数据

    在Android开发中,数据交换和存储常常涉及到对象的序列化和反序列化。这是一个关键的环节,特别是当数据需要通过网络(如Socket)或者蓝牙进行传输时,因为这些通信方式通常要求以二进制格式传输数据。本篇将详细...

    Android中传递图片的2种方法

    在Android应用开发中,有时我们需要在不同的活动(Activity)之间传递数据,其中图片的传递是一个常见的需求。本篇文章将详细介绍两种在Android中传递图片的方法,并提供相应的操作代码实例。 ### 方法一:通过转换成...

    android studio 保存图片到本地相册

    一旦获取到图片的URL,我们可以使用`java.io`和`android.graphics`包中的类来下载并处理图片。 1. **下载图片** 使用`java.net.URL`和`java.io.InputStream`下载图片数据。创建一个`URL`对象,然后通过`open...

    Android编程使用Intent传递图片的方法详解

    总结,Android编程中使用Intent传递图片的关键在于将图片转换为字节数组,通过Intent进行传递,然后在接收端再将字节数组还原为Bitmap。这种方法虽然简单,但对图片大小有限制,对于大数据量的图片,应考虑更高效的...

    JSON和byte[]

    标签中的“源码”可能是指涉及JSON解析器或处理`byte[]`的相关代码实现,而“工具”可能指的是用来操作和转换JSON或处理二进制数据的工具或库。 在给定的压缩包文件中,有两个文件:`kvs6.erl`和`tsTservTW2.py`。`...

    android aidl 复杂数据类型 传图片service

    总结起来,使用AIDL在Service中传递复杂类型如图片,需要对Android IPC机制有深入理解,包括AIDL接口定义、数据类型转换以及Service的生命周期管理。这是一个涉及到多方面技术的综合问题,需要开发者具备扎实的...

    android jni 中文字符传递demo

    描述提到"实现了C语言与java端之间互相传递汉字的功能",这意味着这个示例项目包含了一个完整的解决方案,演示了如何在两端进行正确编码和解码,以确保中文字符在转换过程中不被破坏。通常,这会涉及到Java的`String...

    android 批量上传图片

    2. 异步处理:确保所有的图片选择、转换和上传操作都在后台线程进行,避免阻塞主线程导致应用卡顿。 3. 分批次上传:如果图片数量过大,可以分批上传,以减少一次性加载的压力。 综上所述,实现Android批量上传...

    android 点击图片通过jni在底层处理,然后在屏幕上显示

    这里我们探讨的是如何在Android应用中通过JNI(Java Native Interface)调用底层C/C++代码来处理图片,并将结果在屏幕上显示出来。这个过程涉及到Android的多层架构、JNI接口设计以及图像处理技术。 首先,我们需要...

    Android Base64对图片进行编码和解码.zip

    在Android开发中,有时我们需要将图片转换为字符串形式以便在网络上传输或存储在数据库中,这时Base64编码就派上了用场。Base64是一种用于将二进制数据转换为可打印ASCII字符的编码方式,它能确保数据在不支持二进制...

    Android文件上传(图片)

    在Android中,可以使用`OkHttp`的`RequestBody.create()`方法创建MultipartBody,每个部分都是一个`Part`,包括Content-Type和图片数据。 7. **进度显示** 在上传过程中,为了提供更好的用户体验,我们通常会显示...

    android开发之Intent实现图片上传

    在Android应用开发中,Intent是连接各个组件(Activity、Service、BroadcastReceiver)的重要桥梁,它用于启动或启动组件,并传递数据。在这个特定的场景中,我们关注的是如何使用Intent来实现图片上传的功能。下面...

    Activity跳转时传递Bitmap对象

    在不同Activity之间传递Bitmap,通常是为了进行图片显示、编辑或者处理。本篇文章将深入探讨如何在Activity跳转时传递Bitmap对象,并以一个Demo为例进行讲解。 首先,理解Bitmap的基本概念。Bitmap对象存储了图像的...

    Android bitmap工具类

    这个转换在Android中通常通过Bitmap的compress方法和Base64编码来实现。Bitmap的compress方法可以将Bitmap对象压缩为指定的格式(如JPEG或PNG),然后通过Base64编码,将二进制数据转化为可读的ASCII字符串。这样做...

    安卓和asp.net通过webservice上传图片到服务器

    在移动应用开发中,将数据或资源从客户端(如安卓设备)...以上就是Android与ASP.NET Web服务进行图片上传的主要步骤和技术细节。在实际开发中,还需要根据具体需求进行调整和优化,确保上传过程的稳定性和用户体验。

    Android Socket服务端与客户端用字符串的方式互相传递图片的方法

    因此,这里介绍一种通过字符串的方式在服务端和客户端之间传递图片的方法。 首先,我们需要将图片转换成适合在网络上传输的格式。在提供的代码片段中,图片首先被加载并压缩。`getimage(String srcPath)`函数使用`...

    android 录音机数据转换mp3(liblame.so)库

    总的来说,通过`liblame.so`库,我们可以实现在Android平台上将录制的音频数据实时转换为MP3格式,从而满足了在移动设备上对音频数据高效存储和传输的需求。同时,这也涉及到了跨语言编程、音频编码原理以及Android...

Global site tag (gtag.js) - Google Analytics