Android Bitmap转字节数组后大小问题

很多Android开发者可能发现,将Bitmap转为字节数组可能文件大小和原始图片差异很大,代码如下

 1.   字节数组data保存Bitmap对象转为字节数组,处理代码:

   BitmapFactory.decodeByteArray(data, 0, data.length);

 2.  而第二种方法处理代码:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data2 = baos.toByteArray();

   这里其实很好理解,第二种方法使用了Bitmap的compress方法,一般用于保存一个Bitmap对象,转为字节输出流,但是compress目前编码由两种,比如JPG,一般处理照片和PNG,PNG一般处理带Alpha透明通道的图片,后面的第二个参数是清晰度,一般100是最高,0是最低,这个值越大图片越清晰,同时文件体积越大,JPG和PNG都是压缩的图片,所以和原始的直接通过BitmapFactory.decodeByteArray解码后的大小会有很大的不同。

时间: 2024-08-01 10:00:11

Android Bitmap转字节数组后大小问题的相关文章

如何将VB.NET 字符串转换成字节数组

问题描述 e.gDimsAsString="123456"要转换成DimbAsByte()=&H12,msg(1)=&H34,msg(2)=&H56可以怎样做?String長度不是固定的,谢谢DimsAsString="123456"DimbAsByte()=Encoding.ASCII.GetBytes(s)這方法出来的是msg(0)=49,msg(1)=50.........是不行的 解决方案 解决方案二:SubString2位一个长度然

android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte

http://blog.csdn.net/z104207/article/details/6634774 [java] view plaincopy package com.bingo.util;      import java.io.BufferedOutputStream;   import java.io.ByteArrayOutputStream;   import java.io.File;   import java.io.FileOutputStream;   import ja

『0015』 - Solidity Types - 动态字节数组(Dynamically-sized byte array)、固定大小字节数组(Fixed-size byte arrays)、string之间的转换关系

孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链.高可用架构工程师 微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 固定大小字节数组(Fixed-size byte arrays)之间的转换 固定大小字节我们可以通过bytes0 ~ bytes32来进行声明,固定大小字节数组的长度不可变,内容不可修改.接下来我们通过下面的代码看看固定大小字节之间的转换关系. pragma solidity ^0.4.4; contract C { b

『0014』 - Solidity Types - 动态大小字节数组(Dynamically-sized byte array)

孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链.高可用架构工程师 微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 一.Dynamically-sized byte array string 是一个动态尺寸的UTF-8编码字符串,它其实是一个特殊的可变字节数组,string是引用类型,而非值类型. bytes 动态字节数组,引用类型. 根据经验,在我们不确定字节数据大小的情况下,我们可以使用string或者bytes,而如果我们清楚的

c#-android接收PC端用C#程序发来的字节数组中的汉字怎么还原

问题描述 android接收PC端用C#程序发来的字节数组中的汉字怎么还原 现在PC端用C#写了一个程序向Android端发送数据(字节数组),发送的数据中有汉字,Android端接收后怎么还原??? 解决方案 要看什么编码,比如说 String s = new String(字节数组,"UTF-8");

.net通过webService返回DataSetSurrogate对象用Binary 序列化并Zip压缩后的字节数组,java做客户端怎么写?

问题描述 最近再写一个接口,对方使用.net写的webservice并提供一个方法供我调用,且返回的是DataSetSurrogate对象用Binary序列化并Zip压缩后的字节数组.我用java的wsimport得到且调用这个方法,但是问题来了这个字节数组该怎么解析呢~~请求各位指点~~ 解决方案

Android Bitmap的加载优化与Cache相关介绍

一 . 高效加载 Bitmap BitMapFactory 提供了四类方法: decodeFile,decodeResource,decodeStream 和 decodeByteArray 分别用于从文件系统,资源,输入流以及字节数组中加载出一个 Bitmap 对象. 高效加载 Bitmap 很简单,即采用 BitMapFactory.options 来加载所需要尺寸图片.BitMapFactory.options 就可以按照一定的采样率来加载缩小后的图片,将缩小后的图片置于 ImageVie

ios-Byte * 作为字节数组参数,为什么返回只有8位?

问题描述 Byte * 作为字节数组参数,为什么返回只有8位? 刚接触oc,遇到一个问题,请明白的讲讲道理. 示例代码如下: 1. 在CMData类里声明了一个字节数组的属性: @property(nonatomic, assign) Byte * commandData; 在其他类中测试调用: const Byte buffer[] = {1,2,3,4,5,6,7,8,9,10}; CMData * data = [[CMData alloc] init]; data.commandData

Android Bitmap压缩方法的选择详解_Android

刚刚修改Bug碰到了一个问题,先描述一下问题. 1.测试说分享文章到微信失败,QQ成功. 定位到微信分享接口. 2.分享其它文章到微信成功. 接口有问题!差点就找接口了,还好没 3.断点微信分享,发现突然压缩失败. 代码写法问题,下面会分解 4.找到原因,微信对分享缩略图大小有32k的限制,代码是对文章的第一张图片进行压缩,图片太大,压缩代码也有问题. 开始解决问题 这里有两种解决方法: 1.接口提供文章对应的分享内容,在编辑人员编辑文章的时候就对这些数据进行了限制. { "title"