首页
学习
活动
专区
圈层
工具
发布

《Quartz 2D编程指南》电子签名、图片处理(水印、裁剪以及屏幕截图)、常见图形的绘制(饼图、柱状图、雪花、手势密码、画板)

Cocoa绘图代码本身使用Quartz来呈现内容。Cocoa只是添加了一个面向对象的接口,然而,Cocoa并没有为所有的Quartz行为提供类。...1》绘制图形、文字 2》绘制、生成图片(图像) 3》读取、生成PDF文件 4》图片的裁截:圆形裁剪 5》自定义控件 1.2、quartz 2D在iOS开发中的价值 当使用uikit框架的普通控件无法实现需求的时候...,可采用quartz 2D技术将控件内部的结构画出来 ,自定义UI控件的样子 1.3、 quartz 2D须知 1)quartz 2D的API是纯C语言的 2)quartz 2D的API来自于Core...5)路径可以是开放的,也可以是封闭的 6)路径主要使用在定义视图运动轨迹 1.4、quartz 2D 的内存管理 1、如果含有create、copy的函数创建对象,使用完之后必须释放,否则将导致内测泄露...2、如果retain了一个对象,不在使用时需将其release掉 可以使用quart 2D的函数(e g.

1.2K20

V,新编程语言来袭!与Go类似,跟C一样快

你可以写的跟C一样: fn main() { //fn是函数(function) println('hello world') } 也可以写的像Python: println('hello world...分别是: 入口函数:main.v main.v用于V计算出构建模式、构造编译器对象(struct V) 创建需要解析的.v文件列表、为每个文件创建一个解析器对象并运行parse()。...token.v 只是所有标记的简单列表,包括一些字符串值以及一些辅助函数。 table.v V创建一个由所有解析器共享的表对象。...基于GDI+/Cocoa Drawing构建的跨平台绘图库,以及基于OpenGL的图形库,用于更复杂的2D/3D应用程序。...V有一个使用本机GUI工具包的ui模块:Windows上的WinAPI/GDI+,macOS上的Cocoa。在Linux上使用自定义绘图。 ?

1.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    曾经是“杀手级”桌面语言,Java桌面开发为何走向衰落?

    Java 应用程序不是“真正的”应用程序 另一个让人感觉 Java“不上档次”的原因,在于我们开发的应用程序都不是本机应用程序。...相比之下,Swing 则拥有轻量化优势,能够绘制自己的一组小部件、降低了维护难度,帮助用户轻松绘制出自己的跨平台界面。 Swing 提供可插入 UI,支持样式设置以模拟本机平台的外观。...他们还推出能将 Java 应用程序打包成本机 OS X.app 的工具,所以开发者就能把 Java 应用程序像真正的本机应用那样交付给用户。...如此一来,我们的 Java 应用程序不仅看起来更像是本机应用程序,实际上也成了本机应用程序。我们只需要在 Xcode 中创建一个新的 Cocoa 项目,再选择 Java 作为项目语言即可。...它会为大家提供漂亮的本机应用程序外壳作为设计起点,而在按下“Build”键时,生成的将是一个可以直接发送给用户的纯本机应用程序。我也用 Cocoa 试着编写过示例应用程序,效果非常完美。

    2.2K20

    Go语言开发Windows应用

    Go开发Windows App要做的第一件事情就是封装这些windows api。 https://github.com/lxn/go-winapi 这个项目已经实现了对winapi的封装。...) 控件 下一步,有基本的winapi之后,需要的是各个控件的使用接口。...在walk/example中能看到几个例子提供参考 实现 好了,有了go-winapi和walk两个开源项目,就可以开始做一个windows app了 界面如下: ?...Go在将来有没有可能支持移动终端应用的开发呢?Android,IOS?据说能使用Go开发Android应用的要求已经提上议程了,毕竟都是google的孩子嘛。至于IOS可能还有很长的路要走。...ps: 截止至2012/11/6,walk的更新版本已经把 walk.Initialize去掉了,换成其他函数了,故本文中的例子请做相应修改 具体可以看这个comment https://github.com

    2.4K60

    Go语言开发Windows应用

    Go开发Windows App要做的第一件事情就是封装这些windows api。 https://github.com/lxn/go-winapi 这个项目已经实现了对winapi的封装。...) 控件 下一步,有基本的winapi之后,需要的是各个控件的使用接口。...在walk/example中能看到几个例子提供参考 实现 好了,有了go-winapi和walk两个开源项目,就可以开始做一个windows app了 界面如下: ?...Go在将来有没有可能支持移动终端应用的开发呢?Android,IOS?据说能使用Go开发Android应用的要求已经提上议程了,毕竟都是google的孩子嘛。至于IOS可能还有很长的路要走。...ps: 截止至2012/11/6,walk的更新版本已经把 walk.Initialize去掉了,换成其他函数了,故本文中的例子请做相应修改 具体可以看这个comment https://github.com

    3.6K91

    【IOS开发进阶系列】iOS系统架构专题

    ,图形的绘制,以及制作基础的动画效果。...Objective-C语言为iOS提供了像集合、文件管理、网络操作等支持。...SQLite:       小型的关系型数据库引擎 OpenGL|ES:       根据OpenGL ES 1.0API标准实现的3D绘图函数库  FreeType:       提供点阵字与向量字的描绘与显示...iPhoneOS中的每一个应用采用这个框架实现如下核心功能:  应用管理;  支持图形和窗口;  支持触摸事件处理;  用户接口管理; 提供用来表征标准系统视图和控件的对象; 支持文本和Web内容; 通过...3 Cocoa中MVC架构 3.1 Controller层架构设计         Controller层总职责是:负责视图控件的内存分配与业务数据填充,而业务数据准备尽量放在业务处理层,一般是Model

    3.5K41

    【CC++】回调函数详解&注册窗口类&LRESULT & CALLBACK详解以及游戏中的应用

    回调函数===窗口过程函数 回调函数首先是一个你需要自己实现内部逻辑的一个 函数,函数内部可以处理不同状态下的多种逻辑策略,最后将函数的调用权交给第三方(操作系统、程序插件等等),当第三方检测到某些状态发生的时候...窗口类的名称(lpszClassName)在进程内必须唯一,不可以重名。需要注意 Windows 标准控件一样具有类名,如果你是用了这些控件,请避免与其重名,否则会导致窗口类注册失败的情况。...为了解决这个问题,游戏程序中一般使用 PeekMessage 函数替代 GetMessage 函数,二者的功能几乎一致,唯一的差别是 PeekMessage 不管消息队列中有没有消息都会立刻返回,也就解决了刚刚提到的更新不及时和不更新卡顿假死问题...PeekMessage 函数和 GetMessage 函数的唯一差别是多了一个控制消息处理方式的参数 wRemoveMsg: BOOL WINAPI PeekMessage( _Out_...该引擎支持硬件加速等高性能的图形操作。 在绘制结束后,需要调用 EndPaint 函数。

    2.3K21

    iOS14开发-入门知识

    Media 层主要包括了各种媒体文件的处理,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。...Cocoa Touch 层为应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,它负责用户在 iOS 设备上的触摸交互操作以及一些其他的关键功能。 创建第一个iOS项目 ?...开发中的其他 UIView(及其子类)都放在该view上。 UIViewController中UIView的生命周期函数 viewDidLoad:View 完成内存加载。...思考:一个控件看不见有哪些可能? 宽度或者高度其实为0。 位置不对(比如是个负数或者超大的数,已经超出屏幕)。 hidden == true。 alpha 有没有更加友好、更加直观、更加便捷、更加高效的方法呢?答案是肯定的,那就是 @IBOutlet 与 @IBAction。 @IBOutlet 写于类中的属性。

    4.2K40

    iOS开发入门笔记

    因为学iOS开发,不仅是学习一门新语言,它包括: 一门语言:Objective-C 一个框架:Cocoa Touch 一个IDE:Xcode 初学脚本语言通常不会来绘制图形界面、与人交互,iOS如果不做图形界面...苹果公司还提供了一个软件,叫Interface Builder,简称IB,用于可视化的界面制作,就像用Dreamweaver做网页,或者像Visual Basic做桌面软件一样。...函数调用 前文述及,不涉及面向对象时,它和C是完全一样的。...在交钱之前,最好问一下,周围的同事,有没有已经交了钱的。...阅读应用代码 从头新建一个应用:Hello World 其它 代码里的控件尺寸 iOS App里的控件尺寸和字体大小都是指Point,Retina设备(iPhone 4,4S,5;the new Pad

    5.5K60

    CALayer的寄宿图

    - (nullable CGImageRef)CGImage; 如果你想把这个值直接赋值给contents,那么你将得到一个编译错误,因为CGImageRef并不是一个真正的cocoa对象,而是CoreFoundation...CoreFoundation类型与Cocoa对象很像,但是他们并不是类型兼容的,不过可以通过__bridge关键字进行转换。...当图片的尺寸与它所在的控件的尺寸不一致的时候,我们可以通过UIView的 contentMode 属性来控制图片的伸缩以及位置等,像下面这样: view.contentMode = UIViewContentModeScaleAspectFit...如果contentsScale的值设置为1.0,就会以每个点1个像素绘制图片;如果设置为2.0,就会以每个点两个像素绘制图片,这就是我们所熟知的Retina屏幕。...创建4个UIImageView,分别设置不同的图片,然后将这四个imageView添加到一个View上?这样做一来占用内存,二来耗用渲染性能,三来增加载入时间。 那么有没有一个更好的解决方案呢?

    1.5K20

    Swift入门:怎样安装Xcode和创建Playground

    watchOS是苹果最小的操作系统的名字,负责运行本机应用程序,并从手机发送通知。 Swift是苹果的现代编程语言,允许你为iOS、macOS和其他平台编写应用程序。...它包含按钮、文本框、导航控件等,您可以使用Swift来驾驭它。 AppKit是苹果的macOS用户界面工具包。像UIKit一样,它包含了按钮、文本框等内容,尽管它关注的是macOS而不是iOS。...Cocoa Touch是苹果iOS的大量框架集合的常用名称。...Cocoa是苹果macOS框架集合的名称。...严格地说,它由用于用户界面的AppKit、基本功能的基础和用于对象图的核心数据组成,但与Cocoa Touch一样,它通常用于表示“所有macOS开发” NeXTSTEP是一个由史蒂夫•乔布斯创建的名为

    7.9K10

    MFC 随机矩形

    问题描述:   简单地使用随即的尺寸和颜色不停的绘制一系列的图像。 一种古老的方式:   设置一个向窗口函数发送WM_TIMER消息的windows计时器。   ...对每个WM_TIMER消息,调用GetDC函数获取设备环境,然后绘制一个随机矩形,接着调用ReleaseDC函数释放设备环境。...方法弊端:   程序不能很快的绘制随机矩形,必须等待每个WM_TIMER消息,会依赖于系统时钟的精度 新函数: PeekMessage(&msg,NULL,0,0,PM_REMOVE);这个函数允许一个程序检查程序队列中的下一个消息...在一个正常的消息循环中,不需要这样做。   因为正常的GetMessage返回值是false(0),但是PeekMessage的返回值是队列中有没有消息,因此检查wm_quit是必要的。...CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); void DrawRctangle(HWND); int cxClient,cyClient; int WINAPI

    1.9K50

    初步学习Qt布局

    QWidget::setLayout()函数给widget提供一个布局。...布局会自动重新定义它们的父类(通过QWidget::setParent())以确保它们是装载布局的widget的子类。 注意1:布局中的控件是装载布局控件的子控件,不是布局的子控件。...这个可以通过将问题控件作为子类来解决,并实现合适的sizeHint()和minimumSizeHint()函数。 在一些情况下,当布局被添加到widget时需要特别注意。...在同样函数的同一个元素中,不应该调用两次 QLayoutItem::setGeometry()。 这个调用将耗费巨大,如果它用几个子widget,因为布局管理器每次都要做一个完整的布局。...窗体小部件的样式 样式(styles)绘制窗体小部件,并封装了GUI的外观和感觉。Qt的内置窗体小部件使用QStyle类完成几乎所有的绘制工作,以确保它们看来确实是一致的、本地窗体小部件。

    8.1K10

    【读书笔记】Windows程序设计5

    通过调用GetTextMetrics函数,可以获取字体尺寸。GetTextMetrics函数需要一个设备环境句柄,因为它会返回该设备环境当前选定的字体的信息。...,从GetDC函数返回的句柄可以在整个客户区绘制,并且GetDC和ReleaseDC函数并不使任何客户区的无效区域变为有效。.../最后一个参数5表示点的个数 5.5.边框绘制函数 画矩形 Rectangle(hdc,xLeft, yTop, xRight, yBottom); //左上角和右下角坐标 画椭圆 Ellipse(...第二种方法则让你指挥windows把计时器消息发送到程序中的另一个函数。收到计时器消息的函数被称为回调函数。...在显示菜单时给紧接着&的下一个字符显示下划线 如果选择inactive选项,则表示该菜单项是非活动的 Separator选项会在弹出菜单上绘制一条水平的分割线 在程序中引用菜单 大多数windows应用程序只有一个菜单

    2.9K10

    基于VS2019开始C++之第一个MFC程序

    二、添加自定义的功能(以比较通用的画图为例) 点击资源视图,这里的控件将是后面需要操作的。 双击IDR_MAINFRAME,可以在这里面添加画图功能。...也可以在Ribbon里面添加画图功能 然后点击工具箱->RIbbon编辑器: 双击Ribbon下的面板控件 修改名称为形状,并添加一个按钮控件,修改名字为矩形 修改矩形的杂项,ID改为ID_RECTANGLE...pDoc) return; // TODO: 在此处为本机数据添加绘制代码 std::list::iterator v; for (v = pDoc...pDoc) return; // TODO: 在此处为本机数据添加绘制代码 std::list::iterator v; for (v = pDoc...总结: 1.学会了如何添加项目工程 2.学会了添加用户自己的源文件和头文件,并且与项目关联 3.学会了类向导 4.学会了按键控件的生成,和通过消息ID跟函数关联起来 参考文献: (1)vs2019 MFC

    1.7K20

    OpenGL ES 2.0 Making the Hardware Work for You

    分析: 因为OpenGL ES 2.0 绘制的第一步需要一个标记,所以需要定义一个 GLuint 变量作为标记 GLuint 的定义:typedef uint32_t GLuint; (位于 OpenGLES...只有一个代理方法,在 Controller 需要重新绘制 View 的时候都会调用这个代理方法,进行绘制。...【使能 Buffers --> 计算所有点的偏移量 --> 绘制 Buffers 】 - 使能 Buffers `glEnableVertexAttribArray`,函数的定义是: GL_API void...因为我们是以坐标点进行绘制的,所以选择 GLKVertexAttribPosition - 计算所有点的偏移量 `glVertexAttribPointer` , 函数定义为 `GL_API void...参数分析: 第一个参数,表明资源数据的类型; 第二个参数,表明一个坐标点中有多少个元素; 第三个参数,表明元素的类型是什么; 第四个参数,表明有没有使用缩放; 第五个参数,表明坐标点有多少个字节; 第六个参数

    93720

    macOS AppKit 的事件响应简介

    一个应用(NSApplication对象)维护着一组窗口(NSWindow)列表,这些窗口都属于这个App,每个窗口对象又维护着一组继承自NSView的对象,这些NSView对象通常用来绘制交互界面以及处理响应事件...一个事件(Event)是怎样开始传递到应用(Cocoa Application)的我们这里说的事件,是指用户通过连接到macOS系统中的鼠标,键盘或者触控板,手写笔等硬件设备的具体操作(比如按下鼠标的按键...每个应用都有一种明确的机制用来确保从操作系统的窗口服务中获取事件(Event).在Cocoa Application中,这种机制叫做runloop(一个NSRunLoop对象,它允许进程接收窗口服务的各种来源...当用户在一个视图控件上点击鼠标按钮后,如果包含这个视图的NSWindow不是key Window,那么这个NSWindow将会变成key Window,并且丢弃本次的鼠标事件;也就是说如果你用鼠标点击了一个不是...:方法 键盘事件派发路径 响应键盘输入是事件派发中最复杂的部分之一.Cocoa 应用程序会遍历每一个键盘事件来确定它属于那种类型然后以及如何处理.先来看一下苹果官方给出的一个键盘事件可能的传递传递路径:

    3.4K60
    领券