小猪的博客

iOS开发 Web开发 Geek


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 开发

  • 搜索
close
小猪的博客

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

发表于 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。但是一测试就发现渲染不正常,追回去看源 ...
阅读全文 »
小猪的博客

Objective-C代码库的实现隐藏

发表于 2017-06-04 | 分类于 iOS
虽然Swift现在是开发iOS推荐入手的最佳语言,但是对于代码库而言,最大的一个问题是Swift ABI仍然没有定下(今年发布的的Swift 4.0,依然放弃ABI稳定性,而注重于Swift源代码3.x->4.0的兼容性)。所以这就意味着Swift 3.x编译的二进制库,在Swift 4.0将无法链接,只能重新代码编译。看来这又将是Objective-C这门古老的语法,能够作为一些framework首选开发语言的一年。 对于一个代码库来说,有时候我们为了隐藏一些实现的细节,或者内部处理 ...
阅读全文 »
小猪的博客

客户端上动态图格式对比和解决方案

发表于 2017-03-06 | 分类于 iOS
对各种客户端来说,无论是Web还是移动端,图片占据的容量和传输资源一定是非常大的。对于静态图,我们常见的PNG和JPEG格式在压缩率和画质无损上都存在着不尽如人意的地方,而动图格式的GIF更是存在着很多问题,比如因此,在很多情况下,我们需要迁移到新的图片格式。 GIF为什么我们不用GIF呢,GIF由于时代限制,存在的天生的问题。GIF的规范最新版本是在1989年制定的,一个24位色都没有普及的时代,因此,GIF规范只支持256色索引颜色,并且只能通过抖动、差值等方式模拟较多丰富的颜色。更为悲 ...
阅读全文 »
小猪的博客

2016年末总结和近期感想

发表于 2016-12-31 | 分类于 Life
年后的最后一天,也是该总结一下这一年的成长了。 从校园到实习软件专业的大三学年,如果你不考研留学的话,说起来都是会走实习加校招的流程。自己这年印象最深的,也就是整个下半年的实习,面试,以及现在的实习了。 大三上的实习当时自己错过了机会,只进入了一个普通的互联网公司,但是也学到了更多校园中无法见到的东西(比如多移动App多Project管理,MapKit,React Native),开阔了一点眼界。真正的下半年好几个月都在忙着校招面试相关的东西,从中也总结了一些经验吧(虽然不知道对社招是否有帮 ...
阅读全文 »
小猪的博客

FRP对比—ReactiveCocoa、RxSwift、Bacon以及背后的Functional

发表于 2016-11-17 | 分类于 iOS
ReactiveCocoa和RxSwiftiOS的开发上,Objective-C可以说既是一个巨大的成功,也是一个巨大的限制。Cocoa Touch提供的原生API本身就是目标当年的事件驱动和消息派发的GUI编程模型,并且专门为Objective-C这门类smalltalk的消息式OO语言设计的,更为尴尬的是iOS上没有OS X上自带的Data Binding。种种原因,导致Target-Acion,KVO,Notification,Apple式MVC架构才会一直成为iOS开发的主流。然而,做过 ...
阅读全文 »
12…5
DreamPiggy

DreamPiggy

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

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