首页
学习
活动
专区
圈层
工具
发布

Android 必知必会 - RGBA转ARGB

背景 服务端下发的颜色值字符串由于一开始依据 iOS 端的 RGBA 格式,Android 端(Android 使用 ARGB 方式)需要进行兼容,需要对此字符串转换。...>>> 8) | (rgba << (32 - 8)); 注意事项: rgbaStr 字符的长度为 9 的时候,才需要转换,7 位时只有RGB色值,直接使用 Color.parseColor() 即可...Color.parseColor() 使用注意事项: 可能会抛出 IllegalArgumentException 的异常,使用时可以进行一层封装,对异常进行捕获并记录日志,出现异常时返回一个预设的颜色值...扩展:ARGB 转 RGBA 以下算法临时改写而成,未经实际产品应用,建议先跑一些测试用例进行验证。 // 1....位操作 int argb = Color.parseColor(argbStr); int rgba = (argb argb >>> (32-8));

3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WPF 从 RGB 字符串转纯色颜色画刷的方法

    本文告诉大家几个方法用来从 RGB 字符串转纯色的 SolidColorBrush 画刷 在 Windows 下,约定的编程规范里,颜色的 RGB 的字符串表示方法是 #[A]RGB 的格式,一定是 R...红色,接着是 G 绿色,最后是 B 蓝色,其中可选首个 Alpha 通道 颜色格式如下 #AARRGGBB: 这是最完全的字符串表示方式 #RRGGBB: 省略了 Alpha 通道,此表示方式的 Alpha...通道等同于 0xFF 的值,表示不透明的纯色 #ARGB: 对于 #AARRGGBB 不同的是,只使用一个字符表示一个通道,例如 #AC12 等同于 #AACC1122 的颜色 #RGB: 和 #ARGB...差不多,只是省略 Alpha 通道,表示不透明的纯色 在开始进行转换时,如果发现转换的颜色不符合预期,还请先仔细阅读一下传入的颜色字符串,看字符串的格式是否符合预期 BrushConverter 使用框架自带的...BrushConverter 的 ConvertFrom 方法即可转换为纯色画刷。

    1.1K30

    Android图片压缩质量参数Bitmap.Config RGB_565、 ARGB_8888的含义及用法

    其实这都是色彩的存储方法:我们知道ARGB指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue,其实所有的可见色都是右红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值...位共16位 由此可见: ALPHA_8 代表8位Alpha位图 ARGB_4444 代表16位ARGB位图 ARGB_8888 代表32位ARGB位图 RGB_565 代表8位RGB位图...位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真。...使用RGB_565会比使用ARGB_8888少消耗2倍的内存,很多时候默认是ARGB_8888,所以我们需要主动设置为RGB_565....用法: 在压缩之前将option的值设置一下: 1 options.inPreferredConfig = Bitmap.Config.RGB_565;

    1.5K20

    Android Color颜色值的转换,字符串转int。获取RGBA值-了解Color的几种转换和取值

    下面主要介绍如何将#000000格式的颜色值转成int。并且从里面分别提取R,G,B,A 等值。 下面让我们进入主题吧。...请注意,color的颜色值的rgb拼接顺序并不是所有系统统一的。例如有些系统中针对透明值是放在了#号后面,而有些是放在了字符串末尾。 上面的取值方式有一个前提条件。...然后每个颜色范围8位。从右往左获取并计算。 也就是B 从0到7,G从8-15,R从16到23,然后A就是24之后了。 由于Android的颜色值顺序是:ARGB。所以上面的例子是这样进行位移的。...获取Color 的R,G,B,A 十六进制值 我们在上面学习了String Color 转int Color。那么我们这一次就学习如何将int Color 转String Color。...但是默认转换为int整数了,我们如果要转成16进制也就是Hex转换即可。 了解这几种转换,大家针对颜色的使用就能直观很多了。

    4.5K20

    详解Bitmap之ARGB_8888RGB_565ALPHA_8ARGB_4444

    ARGB_4444:分别用4位来记录4个值,所以每个像素会占用16位。 RGB_565:分别用5位、6位和5位来记录RGB三色值,所以每个像素会占用16位。...ALPHA_8:根据注释应该是不保存颜色值,只保存透明度(8位),每个像素会占用8位。 内存大小 那么对bitmap有何影响? 这里都以ARGB_8888为基准来进行对比。...ALPHA_8:内存占用减少3/4,没有颜色,只有透明度,即黑白。.... **/ @Deprecated ARGB_4444 (4), 原来在KITKAT,即Android 19之后,这个参数就彻底无效了,只用这个参数会被默认替换为ARGB_8888,所以内存大小没有变化...= Bitmap.Config.ARGB_8888; 翻译过来就是如果inPreferredConfig不为null,那么解码器回尝试使用此参数指定的颜色模式来对图片进行解码,如果解码时发现不能满足这个模式

    5.2K30

    java:图像(BufferedImage)色彩空间转换(灰度)暨获取图像矩阵数据byte[](sRGBgray)

    article/details/51866321 ColorConvertOp java.awt.image包下面有个类java.awt.image.ColorConvertOp,类名直译就是”颜色转换操作...顾名思义,它的作用就是将一个色彩空间(color space)的图像转换为另一个色彩空间的图像。有了这个神器我们就能轻易的将一张彩色图你像转换成灰度(gray)或其他色彩空间图像。...BufferedImage中提供了一个getRGB()方法,它返回的是一个ARGB格式int[]数组(每个int型元素的4个字节分别代表一个像素的Alpha,Red,Green,Blue四个通道)...如果你要从这个方法获取RGB的数组,你还得自己写转换代码: /** * 返回图像的RGB格式字节数组 * @param image * @return *...在仔细研究了BufferedImage的代码之后,才明白getRGB()只是BufferedImage为默认 RGB 颜色模型 (TYPE_INT_ARGB)提供的一个便利性封装。

    2.9K20

    android bitmap压缩几种色彩详解

    ,ALPHA_8, ARGB_4444,ARGB_8888,RGB_565 到底是什么呢?...其实这都是色彩的存储方法:我们知道ARGB指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue,其实所有的可见色都是右红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值...说白了就ALPHA_8就是Alpha由8位组成 ARGB_4444就是由4个4位组成即16位, ARGB_8888就是由4个8位组成即32位, RGB_565就是R为5位,G为6位,B为5...位共16位 由此可见: ALPHA_8 代表8位Alpha位图 ARGB_4444 代表16位ARGB位图 ARGB_8888 代表32位ARGB位图 RGB_565 代表8位RGB位图...位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真。

    1.3K50

    面试官:请使用 OpenGL ES 将 RGB 图像转换为 YUV 格式。我 ……

    最近,有位读者大人在后台反馈:在参加一场面试的时候,面试官要求他用 shader 实现图像格式 RGB 转 YUV ,他听了之后一脸懵,然后悻悻地对面试官说,他只用 shader 做过 YUV 转 RGB...,不知道 RGB 转 YUV 是个什么思路。...RGB 转 YUV 来到本文的重点,那么如何利用 shader 实现 RGB 转 YUV 呢?...前面小节已经提到,先说下一个简单的思路: 先将 RGBA 按照公式转换为 YUV 如(YUYV),然后将 YUYV 按照 RGBA 进行排布,最后使用 glReadPixels 读取 YUYV 数据,由于...shader 实现 RGB 转 YUV 原理图 我们要将 RGBA 转成 YUYV,数据量相比于 RGBA 少了一半,这就相当于将两个像素点合并成一个像素点。

    6.1K41

    「 swift 」UIColor 加载十六进制颜色,标准写法带透明度

    一、前言 iOS 开发对于方法的拓展实在不行,不像 android 可以直接加载十六进制色值 我在国外论坛上,看到大佬的一种写法,感觉很有用,这里分享给大家 二、实现 下面我将逐步提出几种方案,一步步优化...,知道最后可以直接使用:UIColor(argb: 0xFFFFFFFF) 建议大家一步步看下去,当然也可以直接跳到最后 CV 2.1 加载六位十六进制颜色 我们知道 #ffffff 实际上是用十六进制来表示...3 种颜色,也就是:红色 ff,绿色 ff 和蓝色 ff。...我们一般使用 UIColor.withAlphaComponent 来设置颜色的透明度,例如 let semitransparentBlack = UIColor(rgb: 0x000000).withAlphaComponent...(0.5) 我们可以在 2.1 的方法中,添加 withAlphaComponent() 来设置颜色的透明度 为了提高兼容性,我们这里将透明度作为一种可选参数传入 convenience init(

    2.5K30
    领券