iOS 图片处理学习: 实现点九切图

2023-11-12

先来一个例子: 一张图片,保留中间, 拉伸两边

看效果
  • 原始图片

easy

easy.png

  • 处理后

截屏2022-01-19 上午3.42.36.png

调用代码
        view.backgroundColor = UIColor.white

        let imgViewWidth: CGFloat = 300

        let imgView = UIImageView(frame: CGRect(origin: CGPoint(x: 50, y: 250), size: CGSize(width: imgViewWidth, height: 100)))

        imgView.contentMode = .scaleAspectFit

        view.addSubview(imgView)

        if let image = UIImage(named: "easy"), let img = stretchImageSides(image: image, newWidth: imgViewWidth){

            imgView.image = img

        }
        
实现代码

逻辑比较简单,

  • 先拉左边

拉升最左边 3 pt 的图片

保留其他部分不变

  • 再拉右边

拉升最右边 3 pt 的图片

保留其他部分不变

这两步的区别是,

画布拉大

func stretchImageSides(image: UIImage, newWidth: CGFloat) -> UIImage? {
        guard image.size.width < newWidth else {
            return image
        }

        let originalWidth = image.size.width
        let tiledAreaWidth = ceil(newWidth - originalWidth) / 2.0

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

iOS 图片处理学习: 实现点九切图 的相关文章

随机推荐

  • 【牛客讨论区】第三章:开发社区核心功能

    目录 1 过滤敏感词 2 发布帖子 2 1 dao 2 2 service 2 3 controller 3 帖子详情 4 事务管理 5 显示评论 5 1 实体类 5 2 dao 5 3 service 5 4 controller 6 添
  • 详细讲解SpringBoot快速入门

    https blog csdn net m0 37106742 article details 64438892
  • Open3D(C++) 读取、可视化并保存点云

    目录 一 主要函数 1 读取点云 1 1 从文件中读取点云 1 2 从扩展名中读取点云 2 保存点云 2 1 直接保存 2 2 根据扩展名保存 3 显示点云 二 代码实现 包括读取txt格式 1 读取常见点云 2 读取txt格式的点云 三
  • CRMEB Pro2.0多门店版商城系统源码

    CRMEB Pro2 0多门店版商城系统源码 支持公众号 H5 小程序 PC 模板需另行购买 APP 首页DIY id 665343205554
  • 云服务器怎么弄mac系统,mac系统在云服务器

    mac系统在云服务器 内容精选 换一换 本地Windows操作系统主机 推荐使用 方法1 使用RDP文件登录在控制台单击 远程登录 下载RDP文件至本地 运行RDP文件 输入密码 密钥鉴权方式请先获取登录密码 登录远程桌面 详细操作请参考使
  • 扫盲系列(4):数据仓库ETL流程和ETL工具推荐

    目录 1 数据抽取 2 数据转换 3 数据加载 4 数据仓库ETL工具推荐 结构化数据ETL工具 非结构化 半结构化数据ETL工具 1 数据抽取 数据源是指存储数据的源头 包括结构化数据 半结构化数据 非结构化数据等 1 结构化数据 可以采
  • 一款经典的ThinkPhp6开发的CMS内容管理系统

    项目介绍 一款 PHP 语言基于 ThinkPhp6 x Layui MySQL等框架精心打造的一款模块化 插件化 高性能的前后端分离架构敏捷开发框架 可用于快速搭建前后端分离后台管理系统 本着简化开发 提升开发效率的初衷 框架自研了一套个
  • Oracle下载安装:

    一 Oracle老版本11g下载地址 https www oracle com cn database technologies microsoft windows html 二 安装 解压到同一目录 在解压文件夹中找到可执行文件 setu
  • angular快速入门教程

    angular 安装 1 安装node js 2 安装angular npm i g angular cli 3 创建项目 ng new 项目名 4 文件结构 e2e 测试目录 src index html 网站主页面 main ts 应用
  • React:主题切换

    效果图 useTheme import useState useEffect useRef from react const useTheme active theme gt const LOCAL KEY theme 如果浏览器存有 LO
  • VBA的常见语法整理

    1 for循环 2 字符串连接符 Dim i For i 1 To 10 Cells i 2 第 i 行 Next i 3 设定必须显式声明变量 Option Explicit 4 while循环 Dim j j 1 While Cells
  • GD32单片机USB HID模式连续发送多包数据,出现丢包现象

    项目背景 产品使用GD32F103单片机实现USB HID模式 周期发送数据包 在特定情况下 需要连续发送三包数据 测试发现 只接收到了最后一包数据 前面的数据丢失了 故障排查 原发送函数如下 再调用custom hid report se
  • volatile、ReentrantLock和synchronized保证线程可见性原理

    主存 工作内存 在了解什么是线程可见性前 我们先来简单了解下 Java内存模型 的主存 工作内存抽象概念 主存 存储的是一些共享资源的存储位置 例如静态变量等 工作内存 每个线程对应的栈内存对应的私有局部资源的存储位置 我们来分析一个小案例
  • 浅识:元组、字典和集合

    目录 一 轻量性列表 元组 一 了解 元组 二 简单的元组操作 三 可哈希对象 二 映射类型 字典 一 了解 字典 二 字典的操作 三 无序可变序列 集合 一 了解集合 二 集合操作与运算 一 轻量性列表 元组 一 了解 元组 列表的功能十
  • Mac下jdk的安装路径

    http hi baidu com liouyan9 blog item 78fdc009b97bdac63ac76377 html Mac下jdk的安装路径 2009 08 11 15 39 苹果系统已经包含完整的J2SE 其中就有JDK
  • Spring Cloud微服务技术栈学习(导读)

    目录标题 前言 微服务架构解决方案 什么是spring cloud 技术组件 概念区分 1 spring cloud alibaba与spring cloud netflix 2 微服务技术之间的关系 3 springcloud是通过htt
  • 单调栈理解

    文章目录 单调栈 什么是单调栈 模拟实现一个单调栈 一些例题 视野总和 下一个最大元素 单调栈 什么是单调栈 从名字上就听的出来 单调栈中存放的数据应该是有序的 所以单调栈也分为单调递增栈和单调递减栈 单调递增栈 单调递增栈就是从栈底到栈顶
  • 常见猫咪种类

    文章目录 中华田园猫 猫图秀 概况 产地血统 毛色特征 形态特征 性格特征 近种区别 饲养特点 适养人群 英短 猫图秀 概况 产地血统 毛色特征 形态特征 性格特征 近种区别 饲养特点 适养人群 美短 猫图秀 概况 产地血统 毛色特征 形态
  • 双目标定(一)单目标定与矫正的基本介绍

    1 单目相机标定 首先 任何标定都是用基于小孔模型的数学模型去近似相机模型 我们需要用fx f dx fy f dy 图像坐标系中的光心原点坐标 和可能的缩放因子ks 这5个相机内参数 切向畸变参数和径向畸变参数 共5 N个参数来 近似 整
  • iOS 图片处理学习: 实现点九切图

    先来一个例子 一张图片 保留中间 拉伸两边 看效果 原始图片 easy 处理后 调用代码 view backgroundColor UIColor white let imgViewWidth CGFloat 300 let imgView