与 Android 相比,iOS 上的 ARGB 颜色不同

ARGB color is different on iOS in comparison to Android

以#2066E100(ARGB8888)为例,预览颜色Android: (深绿色)

然而,在iOS中,结果颜色是这样的:(淡黄色)

在我看来,alpha 通道在 iOS 和 Android 中的工作方式不同。所以我的问题是,是否有将 argb 颜色从 Android 转换为 iOS 的通用方案?

我想让 iOS 显示与 Android 相同的颜色。

编辑:更多图片(这次我使用#4066E100)

Android:

iOS:

编辑:添加 swift 代码

if let context = CGBitmapContextCreate(&colors, dim, dim, 8, 4 * dim, CGColorSpaceCreateDeviceRGB(), CGImageAlphaInfo.PremultipliedLast.rawValue | CGBitmapInfo.ByteOrderDefault.rawValue) {
        if let cgimage = CGBitmapContextCreateImage(context) {
            let uiimage = UIImage.init(CGImage: cgimage)
            return uiimage
        }
    }

我怀疑在这两个平台上处理 ARGB 颜色的方式之间是否存在实际差异。在我看来,这里唯一的区别是它们显示的背景。

快速查看您在没有 alpha 通道的情况下提供的颜色显示为亮绿色。

alpha 通道为 0x20,这使得颜色几乎透明,因此显示该颜色的背景颜色将对整体颜色产生很大影响。

黑色背景表示您看到的深绿色,白色背景表示您看到的亮黄色。

查看每个平台上的背景颜色,确保它们在两个平台上都相同。然后颜色应该看起来相同(不同的显示颜色清晰度无法承受)。