如何从 iPhone 上的 UIImage 获取 UIColor

2024-01-22

我想逐点处理我的图像,但我不知道如何从图像中获取点的颜色。那么如何逐点移动指针呢?


您无法直接从 UIImage 执行此操作,但您可以使用您提供的内存缓冲区将图像渲染到位图上下文中,然后直接测试内存。 这听起来比实际情况更复杂,但可能仍然比您想听到的更复杂。

如果您有 Erica Sadun 的 iPhone Developer's Cookbook,第 54 页对其进行了很好的介绍。总的来说,我会推荐这本书,所以如果您没有的话,值得一读。

我独立地得到了几乎完全相同的代码,但遇到了一个看起来可能也在 Sadun 的代码中的错误。在 pointInside 方法中,点和大小值是浮点数,并在转换为 int 之前作为浮点数相乘。如果您的坐标是离散值,这很好,但在我的情况下,我提供了子像素值,因此公式失败了。当然,一旦你发现了问题,修复就很容易了——只需在相乘之前将每个坐标转换为 int 即可——所以,在 Sadun 的情况下,它会是:


long startByte = ((int)point.y * (int)size.width) + (int)point.x) * 4;

另外,Sadun 的代码以及我自己的代码只对 alpha 值感兴趣,因此我们使用仅采用 alpha 值的 8 位像素。更改 CGBitMapContextCreate 调用应该允许您也获取实际颜色值(显然,如果每个像素超过 8 位,您也必须将其乘以 pointInside 公式)。

[编辑] 这促使我把在我的博客上编写代码 http://www.levelofindirection.com/journal/2009/9/24/getting-at-pixel-data-from-a-uiimage-for-iphone-dev.html(当我研究如何语法突出显示它时,有一个侧轨):

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

如何从 iPhone 上的 UIImage 获取 UIColor 的相关文章

  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • SpriteKit 碰撞检测中 SKSpriteNode 之间的间隙

    我已经尝试解决这个问题很长一段时间了 我有一个具有简单平台物理原理的游戏 其中玩家跌倒在一个方块上 这可以阻止他跌倒 这是可行的 但是玩家停止的位置和实际对象 精灵节点的位置之间存在明显的差距 这是一个屏幕截图 它应该是不言自明的 clas
  • 如何获取通讯录图片数据的裁剪框?

    AddressBook 框架提供 ABPersonCopyImageData 用于获取每个地址簿条目的联系人图像 这对于图像数据来说非常有用 但用户也可以出于框架目的调整图像的大小和裁剪图像 当我获取图像数据时 我得到的是完整图像 而不是裁
  • 如何在 xcode 中使用相同的 nib 文件创建多个窗口

    我有一个使用表格视图作为界面的 iPhone 应用程序 每次用户点击其中一个表格单元格时 我想向用户显示另一个窗口 然而 我推入导航控制器的窗口的用户界面非常相似 因此 我决定制作一个 通用 nib 文件 以便在该通用 nib 文件的文件所
  • iPhone 中的表视图属性

    如何更改iPhone中tableview中每行文本的颜色 有人知道吗 那么请给我指导 提前致谢 基本上你需要做的是以下内容tableView CellForRowAtIndexPath method cell textLabel textC
  • Objective-C - NSNotificationCenter 放在哪里?

    我有一个 NSNotificationCenter 选择器 把它放在哪里 在委托中 如果是 那么在哪里 在控制器中 方法也放在哪里 我需要解除分配 NSNotificationCenter 吗 NSNotificationCenter de
  • CAKeyFrameAnimation 中的 keyTime 是什么样的值?

    例如我有这个 CAKeyFrameAnimation CALayer theLayer myView layer CAKeyframeAnimation animation animation CAKeyframeAnimation ani
  • 如何让 Chrome Cast 在 iOS 后台运行?

    我有一个简单的问题 当您进入 iPhone 的主屏幕并且不退出应用程序时 chrome Cast 设备会停止在屏幕上播放视频 当应用程序在后台运行时 我如何才能保持播放状态 如果您有一个视频应用程序并且它在投射设备中运行 您可能需要以下行为
  • 如何在UiView中添加UIImagePickerController

    如何在TabBarApplication中的UiView中添加UIImagePickerController 无论您是否在选项卡中 此代码都会进入您视图的 ViewController 类 当您需要时创建一个选择器 UIImagePicke
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • 自定义 UITableViewCell 错误

    我收到此错误 Terminating app due to uncaught exception NSUnknownKeyException reason
  • iphone - 如何读取麦克风输入?

    如何从麦克风读取声音数据 我不想录制然后访问数据 我希望能够实时访问声音输入 您可以将麦克风中的声音 PCM 样本 录制到非常短的内存缓冲区 持续时间短至几毫秒 这与使用 iOS API 一样接近 实时 查看 aurioTouch 示例 了
  • 在 UITableViewCell 内动态更改标签宽度

    我正在尝试建立一个自定义表格视图 正如您在图片中看到的 我在故事板一侧将标签的宽度默认设置为 160 磅 并在加载表格时动态更改宽度 我通过修改 cellForRowAtIndexPath 委托方法来实现此目的 因此 根据日期的长度 我设置
  • 隐藏导航栏和标签栏时,UIView 不会调整为全屏

    我有一个应用程序 它有一个用于正常交互的选项卡栏和导航栏 我的一个屏幕是很大一部分文本 所以我允许用户点击进入全屏 有点像 Photos app 导航栏和标签栏被隐藏 我将文本视图的框架设置为全屏 问题是 标签栏原来所在的位置有大约 50p
  • 带有图像的 UITableView 滚动非常慢[重复]

    这个问题在这里已经有答案了 可能的重复 带图像的表格视图 加载和滚动缓慢 https stackoverflow com questions 4071497 table view with images slow load and scro
  • admob ios7错误音频框架

    我正在将 admob SDK 当前的 集成到我的上一个应用程序 IOS7 Xcode5 中 并且出现了一个新错误 在新项目上也是如此 我想我错过了一些东西 但我多次重新启动该过程 但错误仍然存 在 Undefined symbols for
  • 共享扩展程序未出现在能够在 iPhone 上共享照片的应用程序列表中

    我正在尝试创建一个共享应用程序扩展 并按照以下来源的教程进行操作 http www technetexperts com mobile share extension in ios application overview with exa
  • iOS 开发:如何强制 UIWebView 加载 Facebook 的非移动版本?

    我正在深入研究 iOS 开发 当我尝试在 UIWebView 中加载特定的 Facebook 粉丝页面时 它会加载该网站的移动版本 该版本仅加载粉丝页面的墙 而不是我需要加载的特定选项卡 在我的应用程序的 iPad 版本中 UIWebVie
  • 如何从地址簿中获取一个人的电话号码?

    我想做的就是让用户从地址簿中选择一个号码 我在这个问题中找到了代码 如何从地址簿联系人获取电话号码 iphone sdk https stackoverflow com questions 286207 how to get a phone

随机推荐

  • PHP - 使参考参数可选?

    假设我在 PHP 中定义了一个函数 最后一个参数是通过引用传递的 有什么办法可以让它成为可选的吗 我怎么知道它是否已设置 我从未在 PHP 中使用过引用传递 因此下面可能存在一个愚蠢的错误 但这里有一个示例 foo function bar
  • 如何为 C# Windows 服务配置 log4net

    我有一个 Windows 服务 其中 app config 文件和 log4net config 文件是分开的 日志记录不起作用 在我的 app config 文件中 我有以下部分
  • 如何使用mock的@patch来模拟在单独的Python模块中定义的函数

    我正在尝试使用模拟和 patch 装饰器为 Python 应用程序构建测试 给定以下目录结构 mypackage mymodule init py somefile py myothermodule tests init py test f
  • 在 OpenCV 中绘制梯度向量场

    我想计算灰度图像的梯度 平滑平面在代码中 并将其绘制为 OpenCV 中的矢量场 叠加到现有图像上 我尝试应用一对 Sobel 运算符 我也尝试过 Scharr 来计算沿 x 和 y 的两个导数 如 OpenCV 文档中所述 但当我尝试绘图
  • 如何在prolog中使用递归绘制直角三角形?

    我得到这个直角三角形的答案 如下所示 shape shape 0 6 shape S A S lt A count 0 S S1 is S 1 shape S1 A shape S X S gt X count A B A lt B wri
  • 如何测试 SQL Server 触发器中的多行操作?

    我的幼儿园 SQL Server 告诉我 可以使用插入和删除的伪表中的多行来触发触发器 我在编写触发代码时大多考虑到这一点 通常会导致一些基于游标的混乱 现在我真的只能测试它们一次发射一行 如何生成多行触发器以及 SQL Server 实际
  • 我可以解释一下下面代码中的几行吗?

    我想了解以下代码是如何工作的 它基本上可以用于对 调试 C 容器进行排序 但我在理解第 3 4 12 和 13 行以及它们的作用时遇到了一些困难 如果我能得到一个简短的解释 那就太好了 谢谢 template
  • 如何在AWS Lex(Python中的lambda)中获取欢迎消息?

    我正在使用 Aws Lex 构建聊天机器人 我有一个场景 我需要最初在没有用户输入的情况下收到欢迎消息 以便我可以在聊天机器人中向用户提供指示 您需要使用 API 调用来与您的用户启动上下文来处理该场景 您可以按照以下步骤操作 您需要创建一
  • Google 电子表格“该文档无法修改。也许它已经变得太大了?”错误

    最近 由于定时脚本向工作表添加了太多外部数据 我的电子表格单元格数量最近超过了 200 万个 如果我尝试在 Chrome 中加载电子表格 Chrome 会崩溃 尽管它会在 Firefox 中加载 如果我尝试在 Firefox 中删除内容 它
  • 选择一个选择器中除第一个和最后一个 td 元素之外的所有元素

    我在CSS中写了这样的东西 tr red gt td not last of type not first of type color E53B2C border bottom 4px solid E53B2C 我正在尝试将此应用于表格单元
  • 如何在 JQuery 中复制/克隆哈希/对象?

    我有一个简单的 Javascript 对象 或哈希 var settings link http example com photo http photos com me jpg 我需要一份副本 有没有settings clone type
  • Django:向特定模型实例添加权限

    我正在寻找实现用户权限以允许用户编辑特定模型实例的最佳方法 例如 我有这样两个模型 model RadioChannel models Model name models CharField max length 150 unique Tr
  • 如何让 MySQL 以不同的用户身份写入输出文件?

    我正在使用写入输出文件的 MySQL 查询 我每天或每两天运行一次此查询 因此我希望能够删除输出文件 而不必求助于 su 或 sudo 我能想到实现这一点的唯一方法是将输出文件写为由 mysql 用户以外的其他人拥有 这可能吗 编辑 我没有
  • 在android中以编程方式打开GPS [重复]

    这个问题在这里已经有答案了 可能重复 如何以编程方式在android中启用 禁用gps和移动数据 https stackoverflow com questions 16752859 how to enable disable gps an
  • Android 黄油刀

    我已经安装了ButterKnife my build gradle看起来像这样 dependencies compile fileTree dir libs include jar testCompile junit junit 4 12
  • 如何使用带有camera2 API的reprocessCaptureRequest

    我正在尝试将相机项目更新到 Android N 因此我正在移动我的旧相机项目相机捕获会话 https developer android com reference android hardware camera2 CameraDevice
  • AttributeError:“NoneType”对象没有属性“encode”(Binance)

    我希望这个简单的脚本可以连接到币安并获取我的帐户的详细信息 以便使用python binance https github com sammchardy python binance库 版本 0 7 9 开箱即用 但似乎没有 我能够连接到
  • 如何检查字符串是否包含电子邮件? [复制]

    这个问题在这里已经有答案了 我有这个代码来检查电子邮件是否有效 email email protected cdn cgi l email protection regex a z0 9 a z0 9 a z0 9 a z0 9 a z 2
  • 如何为极坐标图 matplotlib 创建小刻度

    我对 matplotlib 绘制的极坐标图的以下两件事感兴趣 如下所示 如何为 r 轴上的极坐标图创建小刻度 如何将 r 标签移得离 r 刻度更远 如图所示 一些 r 刻度与轴接触 极坐标图没有次要或主要刻度 所以我认为您需要通过绘制小线段
  • 如何从 iPhone 上的 UIImage 获取 UIColor

    我想逐点处理我的图像 但我不知道如何从图像中获取点的颜色 那么如何逐点移动指针呢 您无法直接从 UIImage 执行此操作 但您可以使用您提供的内存缓冲区将图像渲染到位图上下文中 然后直接测试内存 这听起来比实际情况更复杂 但可能仍然比您想