UIImage 到 UIColor 像素颜色数组

2023-12-14

我很抱歉问这个问题,但我不知道如何将 UIImage 表示为每个像素的 UIColor 数组。我已尽最大努力进行转换UIImagePNG/JPEGRepresentation但无法得到想要的结果。


这是一个 Swiftier 版本(Swift 3):

extension UIImage {
    var colors: [UIColor]? {

        var colors = [UIColor]()

        let colorSpace = CGColorSpaceCreateDeviceRGB()

        guard let cgImage = cgImage else {
            return nil
        }

        let width = Int(size.width)
        let height = Int(size.height)

        var rawData = [UInt8](repeating: 0, count: width * height * 4)
        let bytesPerPixel = 4
        let bytesPerRow = bytesPerPixel * width
        let bytesPerComponent = 8

        let bitmapInfo = CGImageAlphaInfo.premultipliedLast.rawValue | CGBitmapInfo.byteOrder32Big.rawValue

        let context = CGContext(data: &rawData,
                                width: width,
                                height: height,
                                bitsPerComponent: bytesPerComponent,
                                bytesPerRow: bytesPerRow,
                                space: colorSpace,
                                bitmapInfo: bitmapInfo)

        let drawingRect = CGRect(origin: .zero, size: CGSize(width: width, height: height))
        context?.draw(cgImage, in: drawingRect)

        for x in 0..<width {
            for y in 0..<height {
                let byteIndex = (bytesPerRow * x) + y * bytesPerPixel

                let red = CGFloat(rawData[byteIndex]) / 255.0
                let green = CGFloat(rawData[byteIndex + 1]) / 255.0
                let blue = CGFloat(rawData[byteIndex + 2]) / 255.0
                let alpha = CGFloat(rawData[byteIndex + 3]) / 255.0

                let color = UIColor(red: red, green: green, blue: blue, alpha: alpha)
                colors.append(color)
            }
        }

        return colors
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIImage 到 UIColor 像素颜色数组 的相关文章

随机推荐

  • Colorbox 和通过 ajax 返回的内容

    我正在使用 jquery colorbox 在窗口中弹出用户帐户 我还有一个按钮 可以通过 ajax 将更多用户加载到页面中 但由于某种原因 使用 ajax 加载的用户不会在彩盒窗口中弹出 如何让 colorbox 处理通过 ajax 返回
  • 使用 BOOST_FUSION_ADAPT_ADT 调整类时出错

    我有以下课程 ifndef WFRACTAL FRACTAL METADATA H define WFRACTAL FRACTAL METADATA H include
  • python - Django内置登录视图不重定向到下一个

    我正在使用 django auth 视图进行身份验证 但成功登录后 它应该尝试将用户重定向到下一个 GET 参数 但它仅重定向到 LOGIN REDIRECT URL 这是我的网址 url r login auth views login
  • Windows Phone 8.1文本框字符虚拟键验证

    我正在开发 Windows Phone 8 1 应用程序 在文本框中 我想阻止用户仅输入任何非数字字母 0 9 所以这是我的代码 private void NumKeyDown object sender KeyRoutedEventArg
  • 使用 python 登录网站

    我正在尝试登录此page使用Python 这是我的代码 from urllib2 import urlopen from bs4 import BeautifulSoup import requests import sys URL htt
  • mvn 编译错误:打开 zip 文件时读取 jar 错误

    我有一个具有这些属性的 x 模块 模块名称 x datamodel 这是 pom xml 的一部分
  • 枚举单例如何发挥作用?

    以前我不使用枚举 而是这样做 public static ExampleClass instance public ExampleClass instance this public static ExampleClass getInsta
  • 反向工程 HTTP 请求

    我拦截了 Charles 上从 iPhone 到 Instagram 的 HTTP 请求 以下是标头 POST logging client events HTTP 1 1 Host graph instagram com Content
  • 使用 javascript 添加 ASP.NET 控件

    我想添加一个ASP label and ASP textbox通过Javascript控制页面
  • 使用树形图将嵌套单元格绘制为树:MATLAB

    我有一个代表树结构的复杂单元格 CellArray 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 我想用它来绘制代表树treeplot p 但我不知道如何构造数组
  • 当元素位于视口中时重新启动计数器动画

    此代码使计数器 动画在视图中启动 但我希望它在滚动到视图之外然后再次进入视图时重新启动 似乎无法解决 如果您想在此处查看实时链接 向下滚动到页脚之前的底部 https easyrecycle dk Serviceomraader html
  • Python 多处理

    我有一个包含二进制编码字符串的大列表 我之前曾在单个函数中处理过这些字符串 如下所示 just included this to demonstrate the data structure data np zeros 250 dtype
  • 正则表达式 javascript 最少 8 个字符,至少 1 个数字和 1 个特殊字符,最多 32 个字符 [重复]

    这个问题在这里已经有答案了 我想要一个正则表达式来检查 最少 8 个字符 至少一个数字和一个特殊字符 最多 32 个字符 我的正则表达式是 d a zA Z 0 9a zA Z 8 16 我测试这个正则表达式可以满意地工作 8 32 d 1
  • iTunes 中更新后的同一个应用程序

    我们要求对我们的应用程序的更新进行快速审查 以修复一个严重的错误 加急审核已获得批准 现在我们的 1 1 版本已经发布 而不是 1 0 版本 但应用程序是一样的 我们对应用程序所做的更改不在新版本中 我们有相同二进制文件的临时版本 并且在临
  • SQL 如果不为空则更新

    我有这个查询 UPDATE users SET username Param1 email Param2 PASSWORD Param3 WHERE id Param4 这是更新我的用户行 但我想说 如果电子邮件或密码不为空更新它们 否则就
  • 是否可以检索iPhone联系人记录的创建时间?

    我想问一个关于 iPhone 的问题 是否可以从每条记录的iPhone联系人中检索创建时间 谢谢 是的 你想要的kABPersonCreationDateProperty 请参阅参考 NSDateFormatter dateFormatte
  • og:image 和 og:url 应该放在 还是 中?

    For og image and og url 因为它们有 URL 我可以将它们放在link标签而不是meta标签 它是更好的吗 另外 使用这两个标签有什么区别 og image and og url 我不知道 OGP 的其他主要消费者 所
  • @QueryParam 正则表达式

    我正在使用 Jersey for Rest 并有一个接受的方法 QueryParam 但是 用户可以发送 QueryParam 像这样 contractName where 是 0 155 之间的数字 如何在 QueryParam 中定义它
  • WIF 配置:issuerNameRegistry 与证书验证

    在 Windows Identity Foundation WIF 4 5 配置中 以下各项之间的关系是什么issuerNameRegistry and certificateValidation 每个人都验证 SAML 2 0 断言的哪一
  • UIImage 到 UIColor 像素颜色数组

    我很抱歉问这个问题 但我不知道如何将 UIImage 表示为每个像素的 UIColor 数组 我已尽最大努力进行转换UIImagePNG JPEGRepresentation但无法得到想要的结果 这是一个 Swiftier 版本 Swift