xcode swift 如何分割图像?

2024-03-20

我正在使用 Swift 2.0,我想将图像分割成多个部分。我知道这是重复的,但它们的语法很旧,我在更新时遇到问题。


update: Xcode 8.2.1 • 斯威夫特 3.0.2

您可以添加此扩展来分割图像:

extension UIImage {
    var topHalf: UIImage? {
        cgImage?.cropping(
            to: CGRect(
                origin: .zero,
                size: CGSize(width: size.width, height: size.height / 2)
            )
        )?.image
    }
    var bottomHalf: UIImage? {
        cgImage?.cropping(
            to: CGRect(
                origin: CGPoint(x: .zero, y: size.height - (size.height/2).rounded()),
                size: CGSize(width: size.width, height: size.height - (size.height/2).rounded())
            )
        )?.image
    }
    var leftHalf: UIImage? {
        cgImage?.cropping(
            to: CGRect(
                origin: .zero,
                size: CGSize(width: size.width/2, height: size.height)
            )
        )?.image
    }
    var rightHalf: UIImage? {
        cgImage?.cropping(
            to: CGRect(
                origin: CGPoint(x: size.width - (size.width/2).rounded(), y: .zero),
                size: CGSize(width: size.width - (size.width/2).rounded(), height: size.height)
            )
        )?.image
    }
}

extension CGImage {
    var image: UIImage { .init(cgImage: self) }
}

游乐场测试:

import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true

let imgURL = URL(string: "https://i.stack.imgur.com/Xs4RX.jpg")!
URLSession.shared.dataTask(with: imgURL) { data, response, error in
    guard
        let data = data, let image = UIImage(data: data)
    else { return }
    
    let topHalf = image.topHalf
    let bottomHalf = image.bottomHalf
    
    let topLeft = topHalf?.leftHalf
    let topRight = topHalf?.rightHalf
    let bottomLeft = bottomHalf?.leftHalf
    let bottomRight = bottomHalf?.rightHalf
}.resume()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xcode swift 如何分割图像? 的相关文章

  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • 在 iOS 11 中创建 Gif 图像颜色贴图

    最近 我在创建 Gif 时遇到了一个问题 如果它太大 颜色就会丢失 然而 感谢 SO 的帮助 有人能够帮助我找到解决方法并创建我自己的颜色图 上一个问题在这里 保存动画 Gif 时 iOS 颜色不正确 https stackoverflow
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • 暂停视频录制[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试创建一个应用程序 用户可以在其中从相机录制视频 该应用程序的功能之一必须是文件录制中的暂停 例如 用户通过按 开始 按钮开始
  • 迭代 NSOrderedSet

    我正在尝试迭代 NSOrderedSet 的实例 像这样的事情 func myFunc var orderedSet NSOrderedSet array 42 43 44 for n in orderedSet NSLog i n 但是
  • 下载Xcode? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚升级到 OS X Mavericks 我很高兴能够使用所有新的 Mavericks 技术 我只有
  • Swift 中带圆角的 NSWindow

    我想要一个圆角的窗户 但我在每个角落都有一个白点 Code let effect NSVisualEffectView frame NSRect x 0 y 0 width 0 height 0 effect blendingMode be
  • iOS UIButton 带有圆角和背景 bug

    我发现圆形 UIButton 存在一个奇怪的问题 这是我创建此按钮的代码块 let roundedButton UIButton type System roundedButton frame CGRectMake 100 100 100
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa
  • iPhone,如何隐藏标签栏按钮?

    如何隐藏单个标签栏按钮 我已经搜索过 但什么也没找到 只找到了完整的栏 我已经取得了一些进展 但仍然遇到问题 此代码位于我的应用程序委托中 带有选项卡栏的出口 我在其中调用它viewDidLoad选项卡栏中显示的第一个视图的视图 void
  • SpriteKit 碰撞检测中 SKSpriteNode 之间的间隙

    我已经尝试解决这个问题很长一段时间了 我有一个具有简单平台物理原理的游戏 其中玩家跌倒在一个方块上 这可以阻止他跌倒 这是可行的 但是玩家停止的位置和实际对象 精灵节点的位置之间存在明显的差距 这是一个屏幕截图 它应该是不言自明的 clas
  • Ios Swift制作字体切换粗体、斜体、boldItalic、正常而不改变其他属性

    我很惊讶 在 Swift 中简单地为现有字体设置粗体和斜体是如此复杂 我只是想通过在字体类上使用以下方法来简化事情 我希望将以下方法添加到已设置字体系列和字体大小的现有字体中 我需要保留这些并仅更改以下内容 setBold Shud 保留斜
  • 如何在 Swift 中调用 Objective-C 实例类型方法?

    我有一个 Objective C 类 如下所示 interface CustomObjectHavingData NSObject property nonatomic strong NSData objWithData instancet
  • 在 macOS 上通过 Apache 本地运行 Xcode DocC 文档

    Xcode 13 的 DocC 文档档案可以使用自定义 Apache 托管 htaccess文件中描述的向外部开发人员分发文档 https developer apple com documentation xcode distributi
  • Switch 语句,其中 value 为 Int 但 case 可以包含数组 [重复]

    这个问题在这里已经有答案了 我想将我的值数组作为 switch 语句的案例 我有一个值数组 let intValues 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 100 我想使用
  • 如何加载图像文件到ImageView?

    我试图在从文件选择器中选择图像文件后立即显示该图像文件 文件选择器仅限于 png 和 jpg 文件 所选文件存储在文件类型的变量中 为此 我设置了一个 ImageView 我希望用这个新文件设置图像 唯一的问题是它的类型是文件而不是图像 如

随机推荐

  • 为什么fork程序printf执行更多时间[重复]

    这个问题在这里已经有答案了 来自fork 的手册页 http linux die net man 2 fork我读到 fork 创建父进程的副本 但无法理解为什么下面的程序printf执行8次 我读Linux 中 fork 的工作原理 ht
  • 有没有办法在没有 VPC 的情况下将静态 IP 分配给 AWS Lambda?

    我希望为我的 Lambda 分配一个静态 IP 该 IP 是通过 API 网关调用的 这是必需的 因为我从此 lambda 调用的下游系统仅接受来自白名单 IP 的 Web 请求 我通过与 lambda 关联的 VPC 成功实现了这一目标
  • 应用程序安装失败 - INSTALL_FAILED_VERIFICATION_FAILURE

    开始了一个新项目 并且this https gyazo com 08cf38899348817b28ec2b2978561d92发生在我身上 我在用Genymotion作为我的模拟器 不确定是什么导致了这个问题 我试过 重建项目 确保我有足
  • 表格布局中的单选按钮组与列对齐

    我正在开发一个反馈应用程序 其布局应与此屏幕类似 1 https i stack imgur com xn3kh jpg https i stack imgur com xn3kh jpg 我已经设计了布局的xml
  • 在 Spring boot 中设置 hibernate fetch size

    如何在Spring boot应用程序中设置hibernate jdbc fetch size属性 可以将其设置到application properties中吗 您应该使用前缀spring jpa properties 查看官方文档here
  • C++ lambda 将捕获作为函数指针

    我正在研究 C lambda 及其到函数指针的隐式转换 我的起始示例是使用它们作为 ftw 函数的回调 这按预期工作 include
  • 在 kotlin 中使用比较器

    我是 kotlin 新手 如何使用比较对象Collections Collections sort list myCustomComparator 我们怎样才能写一个MyCustomComparator科特林中的方法 private fin
  • 印刷撇号 + 宽字符串文字破坏了我的 wofstream (C++)

    我刚刚在处理不祥的印刷撇号 时遇到了一些奇怪的行为 而不是打字机撇号 与宽字符串文字一起使用时 撇号会破坏 wofstream 这段代码有效 ofstream file test txt file lt lt A B file close
  • 将对象作为参数发送给分叉的 Nodejs 进程

    Having fork MyProcess js foo 在主流程中和console log process argv 2 在分叉进程中将记录foo到我的控制台 然而 fork MyProcess js myProp bar 在主流程中和c
  • 颜色条最小值和最大值

    如何手动更改绘图中颜色条的最小值和最大值 例如 如何将下图中颜色条的最小值设置为 0 import plotly express as px import numpy as np df px data gapminder query yea
  • 将结果写入同一 Excel 文件中的 2 个不同工作表中

    你能教我Python是否可以写入同一个Excel文件 但2个不同的电子表格 选项卡 举例来说 我想挑选并写入以下4个网站的标题 并将它们写入同一个文件title xls中 但分别写入其Sheet1和Sheet 2中 www dailynew
  • jQuery - 从值数组中按值选择元素

    给出一些简单的 JSON 62689 62690 62697 我需要在 DOM 中选择与这些值相对应的三个元素 基于value属性 他们可能是一个
  • 处理存储在配置文件中的变量的最佳实践是什么?

    如果我使用配置文件来存储例如站点名称 数据库主机等 处理此问题的最佳实践是什么 sitename stackoverflow com 然后在函数中设置全局 sitename DEFINE SITENAME stackoverflow com
  • wxWidgets的EVT_CHAR_HOOK有什么作用?

    我正在维护一个 wxWidgets C 应用程序 它使用 EVT CHAR HOOK 来捕获高级窗口中的关键事件 我找不到此事件的任何真实文档 但我可以推测它以某种优先于 标准 关键事件的方式拦截关键事件 我刚刚发现的一件令人不安的事情是
  • Angular2 使用 ngFor 绑定数组

    我使用的是 angular2 在我的表单中 我通常创建一个模型类并将我的对象与表单绑定 然后通过 this myObject 进行访问 div class form group div
  • spring data redis主从配置

    以下是我的 jedis 配置 Bean public JedisConnectionFactory getJedisConnectionFactory JedisConnectionFactory jedisConnectionFactor
  • 从包含多个文档的语料库中删除行

    我的语料库中有 4000 个文本文档 作为数据清理的一部分 我想从每个文档中删除包含特定单词的行 例如 library tm doc corpus lt VCorpus DirSource C TextMining Prototype pa
  • iOS 13中的prefersStatusBar隐藏问题

    大家好 我想隐藏我的状态栏 in a View Controller但它似乎不起作用 我使用了该功能 override var prefersStatusBarHidden Bool return true 我还设置了View contro
  • Parse Javascript SDK -- 将客户端 `user` 保存为服务器端 ` Parse.User.current()`

    我可能在概念上做错了事情 所以请告诉我我是否错了 我正在使用 Parse 的 Facebook 登录来登录用户客户端 然后我尝试发布这个user object到我的服务器 这样我就可以在服务器端拥有该用户对象 但我在文档中找不到与此相关的任
  • xcode swift 如何分割图像?

    我正在使用 Swift 2 0 我想将图像分割成多个部分 我知道这是重复的 但它们的语法很旧 我在更新时遇到问题 update Xcode 8 2 1 斯威夫特 3 0 2 您可以添加此扩展来分割图像 extension UIImage v