首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么位图DecodeByteArray不能解码24位(或更多) bmp图像?

位图DecodeByteArray方法是Android中用于解码字节数组为位图的方法。它可以解码多种格式的图像,包括JPEG、PNG、GIF等,但不支持直接解码24位或更多位的BMP图像。

BMP图像是一种无损的位图格式,它可以存储24位或更多位的颜色信息。然而,Android的位图解码器在解码BMP图像时,只支持8位和16位的BMP图像,不支持24位或更多位的BMP图像。

这是因为Android的位图解码器是基于Skia图形库实现的,而Skia图形库在解码BMP图像时,只支持8位和16位的BMP图像。这是由于Android设备的显示系统通常使用16位色深来显示图像,因此16位的BMP图像可以直接在设备上显示,而8位的BMP图像可以通过调色板映射到16位色深来显示。

对于24位或更多位的BMP图像,Android的位图解码器无法直接解码。如果需要在Android中处理这种类型的图像,可以考虑使用其他的图像处理库或自定义解码算法来实现。

总结起来,位图DecodeByteArray方法不能解码24位或更多位的BMP图像,是因为Android的位图解码器不支持这种类型的图像。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Drawable.Bitmap.Canvas.Paint.Matrix

Bitmap – 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888、ARGB8888。作为一种像素的显示对象 执行效率高,但是存储效率低的缺点也很明显。...就理解为一种bmp格式图像存储对象。...Drawable – 作为Android下通用的绘制图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。...从资源中获取Bitmap ① 通过decodeResource,这种方式不可取,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。...=0){ return BitmapFactory.decodeByteArray(byte, 0, byte.length); }

1.4K60

C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)。

其实我一直都是喜欢自己去做图像格式的解码的(目前我自己解码图像格式大概有15种),但是写本文主要原因是基于CSDN的这个帖子的:                              http...因此,我把希望投向了比较有名的图像解码的软件FreeImage中,经过试验,发现FreeImage的解码是和PS一致的。      ...由上述可见,FreeImage的侧重点偏向于图像解码和编码,显示图像则需要用户自己负责,而这正是我们所需要的。      ...Bmp.UnlockBits(BmpData); 正是由于这个原因的存在,如果采用方案1,我们不能在创建GDI+的位图后立马释放FreeImage的创建的DIB对象,即不能调用FreeImage_Free...有了上述的问题,我们转而使用方案2,方案2使用了一句Bmp.RotateFlip(RotateFlipType.RotateNoneFlipY);这个语句会创建一副新的位图,也就是说进行旋转后的图像已经不再同

2.7K100
  • Android中的Bitmap的详细介绍

    Bitmap简介(摘抄于网络) 位图文件(Bitmap),扩展名可以是.bmp或者.dib。...位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。...例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/(8*1024)=3072KB 位图文件图像效果好,但是非压缩格式的,需要占用较大存储空间,不利于在网络上传送...第一个函数是用来防止边缘的锯齿, (true时图像边缘相对清晰一点,锯齿痕迹不那么明显, false时,写上去的字不饱满,不美观,看地不太清楚)。 第二个函数是用来对位图进行滤波处理。...这个时候,由于你不能控制位图的绘制, 只能用其他方法来实现防止锯齿。 另外,如果你画的位图很多。 不想每个位图的绘制都传入一个Paint。

    2.4K10

    TRTC案例:截图体积与清晰度

    PNG/JPEG/BMP格式的简单对比: 为了描述组成图像的像素色彩信息,需要知道图像的长、宽像素、像素位深等信息。...由于JPEG是有损压缩,会产生迭代有损,在重复压缩和解码的过程中会不断丢失信息使图像质量下降。...(无压缩位图bmp位图的计算方式如下 大小=高度*宽度*位深/8/1024/1024 (MB) 如客户图1是未经压缩的位图: 1080*2130*32/8/1024/1024 = 8.77MB 如客户图...云端截图功能的本质,更多的是配合监管结合鉴黄等功能综合使用,对于有高清截图需求的场景,并不适合。...在这种情况下,它要么表示透明要么不是,因为alpha bit只有01两种不同表示的可能性。又如一个使用32个bit存储的位图,每8个bit表示红绿蓝,和alpha通道。

    2.6K10

    (48)STM32——图片显示实验

    图片格式 BMP 全称BitMap,是Windows中的标准图像文件格式,后缀名为:“.bmp”。 采用位映射存储方式,除图像深度可选外,不做任何压缩。...图像深度可选:1、4、8、16、24、32bit。 BMP文件存储数据时,图像的扫描方式是按照从左到右、从上到小的顺序。 优点:但是没有任何失真,图片保存完好。 缺点:图片占用空间大。...组成 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息; 调色板,这个部分可选,有些位图需要调色板,有些位图不需要调色板...(比如:24位的BMP); 位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。...: res=stdbmp_decode(filename); //解码bmp break; case T_JPG: case T_JPEG: res=jpg_decode

    90520

    (49)STM32——照相机实验

    目录 学习目标 图片格式 BMP 组成 编码  步骤 JPG 编码 拍照步骤 配置 代码 总结  ---- 学习目标         本节我们学习的是照相机实验,主要的功能就是将照片拍下,然后把数据解码...图片格式 BMP 全称BitMap,是Windows中的标准图像文件格式,后缀名为:“.bmp”。 采用位映射存储方式,除图像深度可选外,不做任何压缩。...图像深度可选:1、4、8、16、24、32bit。 BMP文件存储数据时,图像的扫描方式是按照从左到右、从上到小的顺序。 优点:但是没有任何失真,图片保存完好。 缺点:图片占用空间大。...组成 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息; 调色板,这个部分可选,有些位图需要调色板,有些位图不需要调色板...创建新BMP文件,写入BMP位图信息。我们要保存BMP,当然要存放在某个地方(文件)(SD卡U盘),所以需要先创建文件,同时先保存BMP位图信息,之后才开始BMP数据的写入。 保存位图数据。

    65321

    WPF图片处理相关

    构造函数析构函数的目的就是用来释放清理非托管资源的。但它有一个问题是调用的时间是系统说了算,不能在程序中自己想要调用时调用析构函数,这是C#规定的。那么就产生了第二种方式。...,此位图由图形图像及其属性的像素数据组成。...Bitmap 是用于处理由像素数据定义的图像的对象。 位图由图形图像及其属性的像素数据组成。 有许多标准格式可用于将位图保存到文件。...使用 Graphics 对象的 DrawImage 方法将图像绘制到屏幕内存。 Bitmap是从Image类继承的一个图像类,它封装了Windows位图操作的常用功能。...BitmapSource 可以是解码器提供的图像文件中的单个帧,也可以是操作自身 BitmapSource 的转换的结果。 BitmapSource 不用于表示多帧图像动画。

    3.6K31

    Kotlin入门(27)文件读写操作

    不过由于图像存储比较特殊,牵涉到压缩格式与压缩质量,因此还得通过输出流来处理(这是Bitmap的compress方法要求的),具体的图片文件写入代码如下所示:     fun saveImage(path...该办法确实可行,因为Android的位图工厂BitmapFactory刚好提供了decodeByteArray函数,用于从字节数组中解析位图,具体代码如下所示:     //方式一:利用字节数组读取位图...    val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size) 之前提到将位图保存为图片文件时,通过输出流进行处理;那么反过来...val bitmap = BitmapFactory.decodeStream(fis)     fis.close() 前两种读取图片文件的方式,其实都包含两个步骤:先从File对象获得文件内容,再利用位图工厂解码位图...譬如图片文件的扩展名既可能是png,也可能是jpg,此时若用传统的语句判断固然可行,但并不雅观,更好的办法是利用Kotlin的in条件,即判断文件的扩展名是否位于扩展名队列中,形如“it.extension

    3.4K20

    Android中的人脸检测的示例代码(静态和动态)

    Google 于2006年8月收购Neven Vision 公司 (该公司拥有10多项应用于移动设备领域的图像识别的专利),以此获得了图像识别的技术,并加入到android中。...Java 层接口的限制:A,只能接受Bitmap 格式的数据;B,只能识别双眼距离大于20 像素的人脸像(当然,这个可在framework层中修改);C,只能检测出人脸的位置(双眼的中心点及距离),不能对人脸进行匹配...(3) 静态图片处理代码实例: 通过对位图的处理,捕获位图中的人脸,并以绿框显示,有多个人脸就提示多个绿框。...所以没有采用上面那种处理位图资源的方式。...BitmapFactory.Options localOptions = new BitmapFactory.Options(); Bitmap localBitmap1 = BitmapFactory.decodeByteArray

    1.1K20

    了解 Android 的矢量图片格式:`VectorDrawable`

    位图 vs 矢量图 大多数的图像格式(png、jpeg、bmp、gif 和 webp 等等)都是位图格式,这意味着它们将图像绘制为一个固定的像素网格。...因此,对于固定分辨率的位图,我们只了解每个像素的颜色,却不理解其中包含的内容。然而,矢量图像是通过在抽象大小的画布上定义一系列形状来描绘图像为什么使用矢量图?...例如, Google I/O app 在 这次提交 中通过将一些 PNG 图标从位图转换成矢量图,节约了 482 KB。尽管听上去不是很多,但这仅仅是对小图像而言;更大的图片(如插图)会节省更多。...动态 由于矢量图像描述它们的内容并不是将自己”扁平化“为像素,这为动画、交互动态主题等有趣的新可能打开了新大门。将来会写更多关于这方面的文章。 ?...将其与像 PNG 这样只需要解码文件内容的位图资源进行比较,这些资源随着时间的推移已经经过高度优化。 这是位图与矢量图的基本权衡。矢量图提供上述好处,但代价是渲染更加昂贵。

    2.5K30

    Android-Universal-Image-Loader源码分析

    ,用于从Internet文件系统加载图像为 Bitmap; Config配置 初始化配置参数,参数configuration为ImageLoader的配置信息,包括图片最大尺寸、任务线程池、磁盘缓存、...LruDiskCache,大小默认存储为Long.MAX_VALUE,默认最大数量为Long.MAX_VALUE; final DiskCache diskCache; //通过URI从网络文件系统应用程序资源中检索图像...NonViewAware 提供处理原始图像所需的信息,但不显示图像。当用户只需要加载和解码图像的时候可以使用它。 加载回调 主要进行图片加载过程中的事件监听。...Options decodingOptions = prepareDecodingOptions(imageInfo.imageSize, decodingInfo); //将输入流解码位图...、内存缓存、位图处理、图片展示和业务回调。

    1.7K40

    HarmonyOS学习路之开发篇—多媒体开发(图像开发 一)

    基本概念 图像解码 图像解码就是不同的存档格式图片(如JPEG、PNG等)解码为无压缩的位图格式,以方便在应用或者系统中进行相应的处理。...PixelMap PixelMap是图像解码后无压缩的位图格式,用于图像显示或者进一步的处理。...约束与限制 为及时释放本地资源,建议在图像解码的ImageSource对象、位图图像PixelMap对象图像编码的ImagePacker对象使用完成后,主动调用ImageSource、PixelMap...图像解码开发 场景介绍 图像解码就是将所支持格式的存档图片解码成统一的PixelMap图像,用于后续图像显示其他处理,比如旋转、缩放、裁剪等。...当前支持格式包括JPEG、PNG、GIF、HEIF、WebP、BMP。 接口说明 ImageSource主要用于图像解码

    26320

    Android图片相关

    一、概念区别 Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB8888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。...Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。...Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作...=0){ return BitmapFactory.decodeByteArray(b, 0, b.length); } else { return null...在分辨率低于480*800时把图片放在drawable—mdpi中是不会有什么影响,但是当分辨率为420*800高于它时就会出问题了。

    71730

    bitmap的六种压缩方式,图片压缩

    ALPHA_8 表示8位Alpha位图,即A=8,一个像素点占用1个字节,它没有颜色,只有透明度 ARGB_4444 表示16位ARGB位图,即A=4,R=4,G=4,B=4,一个像素点占4...bit.compress(CompressFormat.PNG, quality, baos);这样的png格式,quality就没有作用了,bytes.length不会变化,因为png图片是无损的,不能进行压缩...CompressFormat还有一个属性是,CompressFormat.WEBP格式,该格式是google自己推出来一个图片格式,更多信息,文末会贴出地址。...当inJustDecodeBounds设置为true的时候,BitmapFactory通过decodeResource或者decodeFile解码图片时,将会返回空(null)的Bitmap对象,这样可以避免...参考文章: Android Bitmap 优化(1) - 图片压缩http://anany.me/2015/10/15/bitmap1/ 多图比较谷歌WebP和JPEG图像格式http://www.win7china.com

    3.1K20

    如何选择正确的图片格式

    图片是网站、app不可或缺的重要组成部分,其中位图更是占了图片的绝大多数,本文主要讨论各种位图格式的特点和适用场景,希望能为大家选择图片格式提供一些帮助。...常见的位图图片格式有: png、jpg、bmp、gif、webp、tpg、heif等,我们看下不同格式图片的特点: 1.png图片的特点: 1)PNG使用无损压缩逻辑 2)png具有透明通道 2. jpg...3.bmp图片的特点: bmp格式存储的图像信息较丰富,几乎不进行压缩,因此图片体积偏大,很少在互联网应用上见到此格式图片。...2)guetzli编码耗时很长,通常在秒级甚至数十秒,因此一般需要预处理异步处理。 图片格式这么多种,如何选择合适的图片格式呢?...3、Guetzli作为对jpg图片的视觉无损优化,没有平台兼容性的问题,可以覆盖上述格式不能覆盖的场景,可以作为补充为业务图片做到全站瘦身。

    2.7K80

    Bitmap 详解

    Bitmap 与 Drawable 区别 Bitmap 是位图信息的存储器,矩形图形每个颜色的存储器,后缀为bmp,有不同的编码器 比如RGB 565等,作为一种逐像素显示对象执行效率高,缺点是存储效率低...bitmap recycler引发的问题:当图像的旋转角度小余两个像素点之间的夹角时,图像即使旋转也无法显示,因此,系统完全可以认为图像没有发生变化。...bmp.isRecycle()) {       bmp.recycle(); //回收图片所占的内存       bitmap = null;       system.gc(); //提醒系统及时回收...Android加载大量图片内存溢出解决方案: 尽量不要使用setImageBitmapsetImageResourceBitmapFactory.decodeResource来设置一张大图,因为这些函数在完成...释放内存以后,就不能再使用该Bitmap对象了,如果再次使用,就会抛出异常。所以一定要保证不再使用的时候释放。

    2.1K20
    领券