小猪的博客

iOS开发 Web开发 Geek


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 开发

  • 搜索
close
小猪的博客

iOS端矢量图解决方案汇总(SVG篇)

发表于 2020-03-30 | 分类于 iOS
iOS端矢量图解决方案汇总(SVG篇)简介矢量图,指的是通过一系列数学描述,能够进行无损级别的变化和缩放的一种图像。相比于标量图(如JPEG等标量图压缩格式),能够在绘制时进行任意大小伸缩而不产生模糊,甚至能够实现动态着色,动画等等一系列交互。 在当今移动端设备尺寸越来越复杂,各种操作系统级别的夜间主题(或者Dark Mode)越来越提倡的场景下,如果依旧使用标量图,我们需要针对不同的屏幕大小(如2x,3x),和对应主题场景(Light/Dark),提供NxM数量级的标量图,对于App大小开销 ...
阅读全文 »
小猪的博客

WatchKit渲染原理以及SwiftUI桥接

发表于 2019-12-10 | 分类于 iOS
WatchKit渲染原理以及SwiftUI桥接背景Apple Watch作为苹果智能穿戴设备领域的重头,自从第一代发布已经经历了6次换代产品,操作系统的迭代也已经更新到了watchOS 6。 不同于iPhone的App,watchOS上的大部分App都侧重于健康管理,并且UI交互以直观,快速为基准。在2015年WWDC上,苹果发布的watchOS的同时,面向开发者发布了WatchKit,以用于构建watchOS App。 这篇主要讲了关于WatchOS上的App的架构介绍,基本概念,并深入分析 ...
阅读全文 »
小猪的博客

发现iOS SDK的Bug - Hopper使用教程向

发表于 2019-06-13 | 分类于 iOS
Hopper简介Hopper,全称Hopper Disassembler,是一个macOS和Linux平台上的反汇编IDE。提供了诸如伪代码,子程序,脚本,Debugger,Hex编辑等等一些列工具。相比于其他知名的反汇编工具如IDA,最大的好处是对平台特性,也就是Objective-C的反汇编有优化,提供非常贴近原始代码的伪代码(IDA目前则会是保留诸如objc_msgSend的伪代码),并且新版本也对Swift提供了一定的反汇编符号优化,因此作为探究iOS平台上的SDK实现,可以说是一利器。 ...
阅读全文 »
小猪的博客

一步步带你开发macOS QuickLook Plugin

发表于 2019-04-16
QuickLook简介QuickLook 是macOS上提供的一项快速展示文档预览的功能,只需要按下空格就可以快速查看各种文件格式的信息,包括文本,代码,图片,音频,视频等等。 由于QuickLook需要支持不断扩展的文件格式,因此macOS专门提供了一个QuickLook Plugin,能让开发者对自己的文件格式提供一个自定义的完整的UI显示,不必依赖macOS系统更新来支持缤纷复杂的格式。 之前一段时间,出于兴趣做了一个AVIF (AV1 Image File Format)的解码器封装,A ...
阅读全文 »
小猪的博客

主流图片加载库所使用的预解码究竟干了什么

发表于 2019-01-18 | 分类于 iOS
主流图片加载库所使用的预解码究竟干了什么 很多图片库,都会有一个类似叫做Force-Decode,Decode For Display之类的感念,很多人可能对这个过程到底是为了解决什么问题不清楚,这里写一个文章来说明它。 这里列举了各个图片库各自的说法,其实讲的都是完全相同的一个概念。 SDWebImage:使用了forceDecode, decompressImages的概念 YYWebImage:使用了decodeForDisplay的概念 Kingfisher:使用了backgroun ...
阅读全文 »
小猪的博客

CocoaPods的资源管理和Asset Catalog优化

发表于 2018-11-26 | 分类于 iOS
这篇文章介绍了关于CocoaPods的资源管理行为,对于Pod库作者是必须了解的知识。同时介绍了CocoaPods使用Asset Catalog的注意事项。如果已经了解某方面知识,可以大致略过直接看结论。 Asset Catalog和App ThinningAsset Catalog,是Xcode提供的一项图片资源管理方式。每个Asset表示一个图片资源,但是可以对应一个或者多个实际PNG图,比如可以提供@1x, @2x, @3x多张尺寸的图以适配;在macOS上,还可以通过指定日间和夜间不 ...
阅读全文 »
小猪的博客

iOS平台图片编解码入门教程(vImage篇)

发表于 2017-11-12 | 分类于 iOS
这篇教程,是系列教程的第三篇,前篇名为iOS平台图片编解码入门教程(第三方编解码篇)。由于vImage已经属于较为底层框架,这一篇将不会特别着重图片封装格式的编解码,会介绍一些Bitmap级别的操作,包括了图像的色彩转换,Alpha合成、基本几何变换等实际用法。由于教程侧重是图像格式,所以不会介绍vImage强大的Convolution等知识,这方面涉及到数字图像处理的复杂知识,不是教程的目标 基本介绍vImage是Apple的Accelerate库的一部分,侧重于高性能的图像Bitmap级 ...
阅读全文 »
小猪的博客

iOS平台图片编解码入门教程(第三方编解码篇)

发表于 2017-10-30 | 分类于 iOS
这篇教程,是系列教程的第二篇,前篇名为《iOS平台图片编解码入门教程(Image/IO篇)》。这篇主要讲第三方解码器如何在iOS平台上处理(和Image/IO的几大要点一一对应),更会介绍一些基本的Bitmap概念,总结通用的处理方法,毕竟授人以鱼不如授人以渔 第三方编解码对于图片编解码来说,Apple自带的Image/IO确实非常的易用,但是对于Image/IO不支持的图像格式就能无能为力了。截止到iOS 11,Image/IO不支持WebP,BPG,对于一些需要依赖WebP的业务就比较麻 ...
阅读全文 »
小猪的博客

iOS平台图片编解码入门教程(Image/IO篇)

发表于 2017-10-30 | 分类于 iOS
这篇教程是系列教程的第一篇,主要是面向于没有怎么接触过iOS平台上图像编解码的人的,不会涉及到多媒体处理中的数字信号处理、图像编码的深入知识。这是系列最简单的一篇,之后会有关于第三方编解码,以及vImage的另两篇教程。 Image/IOImage/IO是Apple提供的一套用于图片编码解码的系统库,对外是一层非常直观易用的C的接口。上层的UIKit,Core Image,还有Core Graphics中的CGImage处理,都是依赖Image/IO库的。因此,掌握Image/IO的基本编解 ...
阅读全文 »
小猪的博客

近期参与的APNG和WebP开源项目的经历及感受

发表于 2017-07-25 | 分类于 Code
这篇文章讲的是有关近期自己参与的几个开源项目的经历以及感受,不过巧合的是内容都和APNG和WebP这两种图像格式相关,阅读前建议先简单略读一下之前写的一篇文章:客户端上动态图格式对比和解决方案 SDWebImageSDWebImage是iOS平台上非常著名的图片下载、缓存库,而今年发布的SDWebImage 4.0在架构、接口变动并带来性能优化的同时,还支持了Animated WebP,因此我就高兴地去实验了一下,本想着可以替代之前使用的YYImage。但是一测试就发现渲染不正常,追回去看源 ...
阅读全文 »
12…6
DreamPiggy

DreamPiggy

DreamPiggy的个人博客,分享一些关于iOS开发,Web开发以及其它好玩东西的地方

52 文章
7 分类
42 标签
RSS
GitHub Twitter Weibo Zhihu
友链
  • neverchanje
  • zltunes
  • huozhi
© 2015 - 2020 DreamPiggy
博客 - Hexo
主题 - NexT.Muse