自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Quinn's blog ! I'm glad to be here!

Swift、Objective-C、JavaScript、Python、OpenGL、Violin、TKD、Nunchakus 只因热爱!

  • 博客(232)
  • 资源 (20)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS 定位说明

一、精度模式extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation     //最适合导航用的定位  iOS4.0以后新增(我们现在用的是这个)extern const CLLocationAccuracy kCLLocationAccuracyB...

2020-03-20 11:09:24 557

原创 打造自己的GPUImage

学习路线与方法本人16年,因直播的需要,开始接触GPUImage、然后学习OpenGL ES;OpenGL ES的门槛比较高,如果没有人带,入门就比较费劲;很长一段时间,大概有半年,有时明明觉得看的都懂了,过一段时间又会忘记,或者在实际应用中就整个垮掉;在iOS的日常开发中,由于我自工作以来接触到的App都是直播类或者相机类产品,所以对图像知识有所了解,但又一知半解,难以深入,后来在开发的过...

2019-07-12 14:59:59 652

原创 本人常用的iOS库

1.Hue 颜色扩展相关2.Snapkit autolayout布局3.Realm 数据库4.RxSwift 响应式5.Hero 转场动画6.Lottie 设计师动画7.Alamofire 网络8.messageKit 聊天UI框架9.Charts 表格10.Kingfisher 轻量级下载、图像缓存11.ImageSco...

2019-06-04 16:47:04 586

原创 iOS中Runtime的设计

本文引用资料:https://juejin.im/post/58f833458d6d81005875f872https://draveness.me/loadhttps://www.jianshu.com/u/2de707c93dc4https://zhuanlan.zhihu.com/p/26379488https://juejin.im/post/58f830c3a22b9d0065...

2019-06-01 20:11:37 373

原创 iOS沙盒路径的文件的存放问题

2019-05-16 09:51:04 499

原创 Swift 柯里化以及autoclosure

参考文章:https://juejin.im/post/5a508a536fb9a01cad7bfb60https://swift.gg/2016/04/06/swift-qa-2016-04-06/https://www.jianshu.com/p/5b27fec8c616一、柯里化 Currying柯里化(Currying)是从数学里借用过来的编程语言技法(基于20世纪Haskell...

2019-03-07 23:43:02 334

原创 iOS 程序猿如何更好的搬砖

1.算法一、算法的基本知识二、数据结构三、排序四、数组查找五、图的搜索六、安全算法七、其他算法2、基础理论一、计算机运行机制二、程序运行机制三、网络机制四、内存五、线程六、音视频3.iOS多线程一、4种多线程的方案二、GCD种的常用API三、GCD是如何实现的4.iOS网络一、Network框架二、Alamofire的设计思路5.iOS内存一、ARC的...

2019-03-02 21:00:24 924

原创 Metal日记:使用步骤指南

本文参考资料: https://juejin.im/post/5b1e8fade51d45068f65d6e8#heading-14 https://xiaozhuanlan.com/topic/0459813726 https://developer.apple.com/videos/play/wwdc2018/604/ https://github.com/quinn0809/GPUM...

2019-01-14 18:11:20 713

原创 极客音盒技术支持

如果您在使用极客音盒时发生技术问题,请发送邮件到[email protected],我们将在第一时间提供反馈。

2019-01-01 21:10:39 433

原创 极客音盒隐私政策

极客音盒尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的 服务,极客音盒会按照本隐私权政策的规定使用和披露您的个人信息。但极客音盒将以高 度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下 ,极客音盒不会将这些信息对外披露或向第三方提供。极客音盒会不时更新本隐私权政策 。 您在同意极客音盒服务使用协议之时,即视为您已经同意本隐私权政策全部内...

2019-01-01 21:00:39 758

转载 iOS 词汇表,术语,转自 Apple Developer

https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/GlossaryDefinitions.html#//apple_ref/doc/uid/TP40015214-CH12-SW1 action A piece of code t...

2018-11-19 11:24:32 498

原创 AVFoundation系列九:AssetMetaData元数据、音乐封面

AVAsset 中可能包含,以下信息:1.title2.artwork3.albumName4.artist下面我们来看如何获取这些信息:Demo:https://github.com/quinn0809/Learn_AVFoundation创建 AVAsset: let file = Bundle.main.path(forResource: "肖央,黄明志 - 不想上班", o...

2018-11-18 14:11:40 823

转载 面试之 PodFile :你真的会写Podfile吗?

Podfile指定每个target的依赖项pod指定特定的依赖库podspec可以提供一个API来创建podspecstarget通过target指定依赖范围0.1 高于0.1版本(不包含0.1版本)的任意一个版本= 0.1 高于0.1版本(包含0.1版本)的任意一个版本< 0.1 低于0.1版本(不包含0.1版本)的任意一个<= 0.1低于0.1版本(包含0.1版本)...

2018-11-16 11:09:50 322

原创 AVFoundation系列八:直接显示CMSampleBufferRef的视图AVSampleBufferDisplayLayer

在处理CMSampleBufferRef时,通常会转成 UIImage,然后显示,其实 Apple 为我们提供了一个类,专门用于显示CMSampleBufferRef,这个类就是AVSampleBufferDisplayLayer。原文 github 分支:https://github.com/quinn0809/VideoCameraDemo:https://github.com/quinn...

2018-11-14 00:34:55 3477

原创 AVFoundation 系列七:简单的视频格式转换

格式转换,使用到了AVAssetExportSession这个类1.获取资源,创建 AVAsset guard let path = Bundle.main.path(forResource: "1", ofType: "mp4") else { return } let url = URL.init(fileURLWithPath: p...

2018-11-13 20:02:21 879

原创 AVFoundation系列六:一个最简单的控制台音频播放器

首先要明白,通知中心是所有app共用的。再明白上述的前提下,apple给开发者提供了相关接口。再明白一件事,AVAudioSession也是多个App共用的。首先,获取通知中心的控制权Demo地址:https://github.com/quinn0809/Learn_AVFoundation let commandCenter = MPRemoteCommandCente...

2018-11-13 00:03:36 958

原创 Metal系列四:Demo清屏加三角形

首先贴出Apple的官方Demo:地址https://developer.apple.com/documentation/metal/devices_and_commands这里有个我总结的流程图:首先由个Metal的准备阶段,在准备阶段中,我们准备以下内容:1.MTLDevice 获取默认设备2.MTLCommandQueue 命令队列1.声明全局变量{ id&l...

2018-11-07 01:24:34 887

翻译 Metal 系列三:Command Setup 设置命令结构

为了使用Metal在GPU上执行我们自定义的代码,我们需要一些命令,设置基础架构。了解Metal是如何在GPU上工作的Metal 是用于操作GPU的,为了要让GPU为你工作,你必须发出一些命令。你的App可以让GPU执行绘图,并行计算,资源管理。Metal和GPU可以理解为 客户端 — 服务器模式:1.使用Metal的APP为客户端2.GPU是服务器3.可以向GPU发出请求4.GPU...

2018-11-03 23:50:33 594 1

原创 Metal 系列二:GPU Devices--创建参数缓冲区\间接命令缓冲区\资源堆和围栏\深度和模板状态\查询可编程样品位置\光栅订单组支持

Creating Argument Buffers 创建参数缓冲区为特定的参数数组创建新的参数编码器。func makeArgumentEncoder(arguments: [MTLArgumentDescriptor]) -> MTLArgumentEncoder?Creates a new argument encoder for a specific array of argum...

2018-11-03 00:03:08 891 1

原创 Metal 系列二:GPU Devices--创建纹理和采样器Creating Textures and Samplers

使用包含纹理状态的私有存储创建纹理对象。func makeTexture(descriptor: MTLTextureDescriptor) -> MTLTexture?Creates a texture object with privately owned storage that contains texture state.Required.IOSurface使用包含纹理...

2018-11-02 23:55:34 827

原创 Metal 系列二:GPU Devices--缓冲区Creating Buffers

Fill buffers with arbitrary data structures that you design and send as arguments to your shader functions on the GPU.使用您设计的任意数据结构填充缓冲区,并将其作为参数发送到GPU上的着色器函数。分配给定长度的新零填充缓冲区。func makeBuffer(length: I...

2018-11-02 23:52:37 390

原创 Metal 系列二:GPU Devices--Metal的内存分配情况

查询内存可用性返回此设备可以使用多少内存(以字节为单位)的近似值。var recommendedMaxWorkingSetSize: UInt64Returns an approximation of how much memory, in bytes, this device can use with good performance.Required.此进程为此进程分配的所有资源...

2018-11-02 23:50:10 580

原创 Metal 系列二:GPU Devices--渲染管线Render Pipeline

创建渲染管线 Creating a Render Pipeline异步创建并返回渲染管道状态对象。func makeRenderPipelineState(descriptor: MTLRenderPipelineDescriptor, completionHandler: MTLNewRenderPipelineStateCompletionHandler)Asynchronously c...

2018-11-02 23:46:36 805

转载 iOS 网络高级编程二:HTTP 条件Get

有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的.上面的情况会造成以下问题(1) 用户流量的浪费(2) 程序响应速度不够快,用户体验差解决上面的问题,一般考虑对数据进行缓存.详参:https://www.jianshu.com/p/ebcb0a1823be...

2018-11-02 20:03:44 254

原创 Metal 系列二:GPU Devices--Get Shader Library

获取着色器创建一个新库,其中包含存储在应用程序默认Metal库中的函数func makeDefaultLibrary() -> MTLLibrary?Creates a new library that contains the functions stored in the app’s default Metal library.Required.创建一个包含存储在指定包中的...

2018-11-01 23:34:53 394

原创 Metal 系列二:GPU Devices--(命令) Command

创建命令队列创建并返回命令提交队列。func makeCommandQueue() -> MTLCommandQueue?Creates and return a command submission queue.Required.创建并返回具有最大未完成命令缓冲区数的命令提交队列func makeCommandQueue(maxCommandBufferCount: In...

2018-11-01 22:59:21 412

原创 Metal 系列二:GPU Devices--(查询特性)Querying Features

//设备功能集定义特定的平台,硬件和软件配置enum MTLFeatureSetThe device feature sets that define specific platform, hardware, and software configurations.//返回一个布尔值,指示设备是否支持特定功能集。func supportsFeatureSet(MTLFeatureSet)...

2018-11-01 22:30:54 1667

原创 Metal 系列二:GPU Devices--(查询属性)Querying Properties

//一个布尔值,指示设备是否配置为无头var isHeadless: BoolA Boolean value that indicates whether a device is configured as headless.Required.//一个布尔值,指示设备是否为低功耗var isLowPower: BoolA Boolean value that indicates whe...

2018-11-01 22:17:33 410

原创 Metal 系列二:GPU Devices--(获取硬件)Acquiring Devices

了解如何为特定类型的iOS和tvOS设备开发Metal应用程序,如果你想开发Metal的APP最好要熟悉不同CPU的特性。前文我们提到,MTLDevice 协议的作用:1.可以在GPU设备中查询是否对APP的Metal提供特殊功能。2.使用GPU设备发出所有Metal commend(命令)3.不要自己实现此协议,相反,要从上文我们介绍的MTLCreateSystemDefaultDevi...

2018-11-01 22:03:41 832

转载 关于微信分享取消,但没有错误码的问题

转:https://blog.csdn.net/GigibondBaby/article/details/82736321这里做个记录用的友盟SDK实现微信分享,发现微信分享途中如果取消分享,回调的error是nil,微信分享成功的回调返回的error也是nil,无法识别是否分享成功。问了友盟的客服才知道微信在8月13号对分享功能做了调整。https://open.weixin.qq.com/...

2018-11-01 14:23:44 486

原创 Metal 系列二:GPU Devices

获取设备默认的GPU设备:代码:guard let device = MTLCreateSystemDefaultDevice() else { fatalError( "Failed to get the system's default Metal device." ) }为了使用Metal framework,首先应该获取GPU设备,app中所有和Metal有联系的对象,...

2018-10-29 23:48:32 1609

原创 Metal系列一:Framework框架介绍

用于3D绘图和高效并发处理。OpenGL 的跨平台特性,导致了其没有办法充分发挥GPU的性能,冗余的代码太多,更多的API需要维护,Metal就是为解决这一目的。Metal 同其他框架协同工作,MetalKit可以简化获取屏幕Metal内容的步骤,使用Metal Performance Shaders 可以自定义函数,或者直接使用现有的函数库。主题:GPU Devices :GPU设备C...

2018-10-29 23:07:47 957

原创 Metal系列:录

心中永远对图形图像充满向往,尊敬!Metal 与 Core Graphics、OpenGL 都是与硬件有关联的底层渲染接口Metal与OpenGL ES 是在GPU中处理CoreGraphics 实在CPU中处理,CPU特点是适合复杂的串行计算,与其特定的物理结构有关GPU特点是简单的并行计算,与其特定的物理结构有关通常由CPU 掉起GPU,GPU执行渲染,最后显示在屏幕上,CPU 掉起GPU,这一步在OpenGL中比较耗时,涉及到了上下文的环境与数据拷贝,Metal则是改善了这种状况。

2018-10-29 22:04:13 326

原创 AVFoundation系列五:关于音视频的导出

参考Apple:AVFoundation Programming Guide本文参考简书:https://www.jianshu.com/p/a5d3ec793597AVFoundation系列四:如何配置一个合格的CameraAVFoundation系列三:音视频编辑AVFoundation系列二:用AVPlayer播放视频AVFoundation系列一:AVAsset的使用方法在音...

2018-10-28 14:24:24 1991

原创 AVFoundation系列四:如何配置一个合格的Camera

本文参考:https://www.jianshu.com/p/0cbca609d7f4如果想开发一个合格相机类产品,那么Apple的这篇AVFoundation指南将会对你大有裨益,可能你是用的是GPUImage,那么原生的GPUImage是对原生AVFoundation的封装,了解此文将有助于理解GPUImage。建议大家再看一下:https://www.jianshu.com/p/8c7c...

2018-10-27 13:42:15 1437

原创 AVFoundation系列三:视频编辑

视频编辑是一个深奥的话题,纵使多遍翻看AVFoundation的文章,至今也是疑惑重重。他的框架如下:如果你想编辑一个视频,那么分为音频轨道和视频轨道,我们通常也会把多个音频放到同一个音频轨道,多个视频放到一个视频轨道,当然还有其他轨道信息,比如字幕。对与音频来讲,AVMutableAudioMix可以用来控制音频的表现形式,AVMutableAudioMixInputParaments是先...

2018-10-27 12:15:24 1282

原创 AVFoundation系列二:用AVPlayer播放视频

发现一个比较好的文章,搬来借用,这是根据苹果官方文档翻译的,并加入了自己的见解;尤其是加载网络的url分析见解,之后可能会根据另一大神的开源demo,总结一下边下边播,所以这里我无耻的设为了原创 原文链接:原文博客地址传送门控制assets的播放,你可以使用AVPlayer对象。在播放的过程中,你可以使用AVPlayerItem对象来管理asset的呈现,AVPlayerItemTrack来管...

2018-10-25 10:43:24 17881

原创 AVFoundation系列一: AVAsset的使用方法

AVAsset 是AVFoundation的操作模型,其中包含音频,视频,字母,元数据。参考:AVFoundation Programming Guide本文将从以下几个方面介绍AVAssetDemo 地址1. AVAsset的加载方式2. 播放一个AVAsset3. 获取一个asset的相关属性4. 从相册加载AVAsset5. loadValuesAsynchronously的...

2018-10-24 01:02:03 3935

转载 xib 中的UIScrollView

此文解决了我的烦恼XIB中UIScrollView的自动布局:https://www.jianshu.com/p/7b8a4c949838

2018-10-23 14:30:57 312

原创 iOS 转场动画的简介

有关转场动画的文章,多如牛毛,也有很多大神的文章,或是开源demo,我从中精简了主要流程,以及自己的开发经验,写了这篇文章,希望有所帮助。早期的时候有一个Demo,在github上:本想做一些转场动画的library,但是由于种种原因搁浅了。本文也将结合这个Demo来做一些补充。https://github.com/quinn0809/PresentTranslationDemo一、C...

2018-10-17 23:38:52 766

swift-5.2.2-RELEASE-ubuntu16.04.tar.gz.2

swift-5.2.2-RELEASE-ubuntu16.04.tar.gz 第二部分,用于构建vapor在linux所需的环境。国内下载较慢,做个镜像,欢迎大家使用,使用的阿里云ECS

2020-04-23

swift-5.2.2-RELEASE-ubuntu16.04.tar.gz

swift-5.2.2-RELEASE-ubuntu16.04.tar.gz 第一部分,用于构建vapor在linux所需的环境。国内下载较慢,做个镜像,欢迎大家使用,使用的阿里云ECS

2020-04-23

ios swift构架Demo

本Demo能让你,在swift 构架中上升一个档次,适合中级IOS开发工程师,强大的可视化编程思想,看你能领会到多少!后续博客。。。

2018-06-11

app截屏 layerRander

参见博客:https://blog.csdn.net/Xoxo_x/article/details/80188654

2018-05-03

帧动画 frameanimation

请前往博客:https://blog.csdn.net/Xoxo_x/article/details/80188453

2018-05-03

IOS 通讯录

IOS 通讯录信息获取

2017-07-17

iOS CoreAnimation之CABasicAnimation:文字路径动画

iOS CoreAnimation之CABasicAnimation:文字路径动画

2017-05-09

视频添加图片水印

博客地址:http://blog.csdn.net/Xoxo_x/article/details/71055867

2017-05-01

iOS GPUImage研究五:一个类似QQ拍摄短视频的Demo

请前往博客http://write.blog.csdn.net/postlist

2017-04-16

GPUImage lib

GPUImage lib 下载前请查看博客

2017-03-04

GPUImage Header

GPUImage Header 下载前请查看博客

2017-03-04

从头开始构建App

从头开始搭建AppDemo,更多请参考博客

2016-12-15

GPUImage图片处理

博客专用,请勿随意下载,博客:http://blog.csdn.net/Xoxo_x/article/details/53507016#GPUImage处理代码

2016-12-07

自定义键盘

请查看博客 http://blog.csdn.net/Xoxo_x/article/details/53333339

2016-12-01

GPU美颜滤镜

下载前请前往博客http://blog.csdn.net/xoxo_x/article/details/52695032,有使用方法

2016-10-07

GPUImage美颜项目

博客专用,下前请看博客

2016-09-28

OpenGL ES glsl文件

博客原文 http://blog.csdn.net/Xoxo_x/article/details/52564502

2016-09-17

ios截图并保存到相册

ios截图并保存到相册,可以自定义截取的范围,还可以深入设置其他参数

2016-08-06

ios颜色屏幕版本切圆边框宏定义

#pragma mark - UIColor宏定义 #pragma mark - 屏幕适配 #pragma mark - IOS版本信息 #pragma mark - 切圆 #pragma mark - 边框

2016-08-02

视频转gif动画

视频转gif,能实现定位选取视频时间,生成gif的帧率,数量,是本人项目中实用的demo,可运行,接口简单快捷,好东西就要分享给大家

2016-07-28

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除