Presentation by Bob McCune of TapHarmonic detailing how to use the Quartz (CoreGraphics) framework with Swift 3.
Sample code available here: https://github.com/tapharmonic/QuartzDemosSwift
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Intel® Software
Variable-rate shading (VRS) is a new feature of Microsoft DirectX* 12 and is supported on the 11th generation of Intel® graphics hardware. Get an overview and learn best practices, recommendations, and how to modify traditional 3D effects to take advantage of VRS.
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...Intel® Software
Variable-rate shading (VRS) is a new feature of Microsoft DirectX* 12 and is supported on the 11th generation of Intel® graphics hardware. Get an overview and learn best practices, recommendations, and how to modify traditional 3D effects to take advantage of VRS.
"The 5 Personas of Product Management (and How to Hire for Them)" by Jason ShenProductized
Product managers are one of the toughest roles to define and hire for, in part because depending on the company and the project, they perform a wide variety of activities. It can be helpful to think of the role as five characters — the Explorer, the Analyst, the Planner, the Advocate, and the Sherpa.
This PRODUCTIZED talk by Jason covers:
1) What each of the five characters does and why it is important
2) Examples of that character in action
3) Specific techniques to identify candidates who could embody this character
4) How these five characters can help your organization better work with product managers
2015/6/11 DAIKINさんで行われた『モーション制作セミナー』で使用したスライドを公開いたします。
Making of ユニティちゃんステージデモ in ComicMarket 86
http://www.slideshare.net/nyaakobayashi/making-of-in-comicmarket-86
のMotionBuilderでのアニメーション演出部分をわかりやすく解説しなおしてみた資料です。
モーションキャプチャデータが納品された後、どんな加工をする必要があるのか解説した資料はあまりありませんので、参考にしていただけるとよいかと思います。
「ユニティちゃん」について
http://unity-chan.com/
「ユニティちゃんライブステージ! -Candy Rock Star-」
リアルタイムで動作するUnityプロジェクトはオフィシャルページのダウンロードから。
ビデオ画面は以下のリンクからご利用いただけます。
https://www.youtube.com/watch?v=M_GUlXJ52YA
A brief wrap up and introduction to SwiftUI and Combine brought by Apple in WWDC 2019, as well as utilizing both to propose a View-Model-ViewModel (MVVM) structure.
Real-world game development with Ebitengine - How to make the best-selling G...Daigo Sato
In this talk, the games made by Odencat will be showcased, and it'll be explained how the studio has grown with Ebitengine. You'll learn a hint to creating a successful game library and the strategy to build a game studio from scratch.
Unreal Engine Basics 01 - Game FrameworkNick Pruehs
First chapter of the lecture Unreal Engine Basics taught at SAE Institute Hamburg.
- Getting familiar with Unreal Engine as a technology, framework and toolset
- Learning the basics about writing Unreal Engine C++ code
Updated version using Swift 3 is available here:
https://www.slideshare.net/bobmccune/quartz-2d-with-swift-3/
Presentation by Bob McCune of TapHarmonic detailing how to use the Quartz framework to perform 2D drawing on the iOS platform. Quartz Demos:
https://github.com/tapharmonic/QuartzDemos
"The 5 Personas of Product Management (and How to Hire for Them)" by Jason ShenProductized
Product managers are one of the toughest roles to define and hire for, in part because depending on the company and the project, they perform a wide variety of activities. It can be helpful to think of the role as five characters — the Explorer, the Analyst, the Planner, the Advocate, and the Sherpa.
This PRODUCTIZED talk by Jason covers:
1) What each of the five characters does and why it is important
2) Examples of that character in action
3) Specific techniques to identify candidates who could embody this character
4) How these five characters can help your organization better work with product managers
2015/6/11 DAIKINさんで行われた『モーション制作セミナー』で使用したスライドを公開いたします。
Making of ユニティちゃんステージデモ in ComicMarket 86
http://www.slideshare.net/nyaakobayashi/making-of-in-comicmarket-86
のMotionBuilderでのアニメーション演出部分をわかりやすく解説しなおしてみた資料です。
モーションキャプチャデータが納品された後、どんな加工をする必要があるのか解説した資料はあまりありませんので、参考にしていただけるとよいかと思います。
「ユニティちゃん」について
http://unity-chan.com/
「ユニティちゃんライブステージ! -Candy Rock Star-」
リアルタイムで動作するUnityプロジェクトはオフィシャルページのダウンロードから。
ビデオ画面は以下のリンクからご利用いただけます。
https://www.youtube.com/watch?v=M_GUlXJ52YA
A brief wrap up and introduction to SwiftUI and Combine brought by Apple in WWDC 2019, as well as utilizing both to propose a View-Model-ViewModel (MVVM) structure.
Real-world game development with Ebitengine - How to make the best-selling G...Daigo Sato
In this talk, the games made by Odencat will be showcased, and it'll be explained how the studio has grown with Ebitengine. You'll learn a hint to creating a successful game library and the strategy to build a game studio from scratch.
Unreal Engine Basics 01 - Game FrameworkNick Pruehs
First chapter of the lecture Unreal Engine Basics taught at SAE Institute Hamburg.
- Getting familiar with Unreal Engine as a technology, framework and toolset
- Learning the basics about writing Unreal Engine C++ code
Updated version using Swift 3 is available here:
https://www.slideshare.net/bobmccune/quartz-2d-with-swift-3/
Presentation by Bob McCune of TapHarmonic detailing how to use the Quartz framework to perform 2D drawing on the iOS platform. Quartz Demos:
https://github.com/tapharmonic/QuartzDemos
Slides for my Master Video session at Renaissance 2014. This session provided a high-level overview of some of AV Foundation's video playback and editing capabilities.
The demo app for this talk can be found at:
https://github.com/tapharmonic/AVFoundationEditor
Beam Angle adjustable LED track light, 10-79degree adjustable, CRI97/90/80 for selection, 3phase power adapter, DMX/DALI, 0-10V, TRIAC dimmable, please contact us for more details, thank you
, AV Foundation moves to center stage as the essential media framework on the device, offering support for playing, capturing, and even editing audio and video. Borrowing some of the core ideas from the Mac's QuickTime, while adding many new concepts of its own, AV Foundation offers extraordinary capabilities for application programmers. This talk will offer a high-level overview of what's in AV Foundation, and a taste of what it can do.
The AV Foundation has grown from a simple audio player quietly added in iPhone OS 2.2 to an extraordinarily ambitious media-creation framework in iOS 4. The latest version provides highly-customizable audio and video capture, deep support for editing and Core Animation-based effects, and export. It is far more comprehensive than nearly any other platform's media framework, mobile or desktop. As a developer, this gives you incredible power… and one heck of a learning curve. In this session, we will take a ground-up look at AV Foundation, starting with its core concepts and patterns, and moving through its most practical and powerful capabilities. Along the way, we'll see how AV Foundation works with iOS' other media APIs -- Core Audio, Media Player, and Core Media -- and how it aggressively uses new iOS 4 programming paradigms like blocks and Grand Central Dispatch. Attendees will come away understanding the straight-arrow paths to AV Foundation's most important features like capture, editing, and export, and how its pieces might be combined in interesting ways to create even more powerful media applications.
India is the world's largest Sponge Iron producer and mostly uses the Coal based process. The down-side of this industry is that it generates significant amounts of solid waste in the form of ESP Flyash and Bag House Filter Dust. Now as this Flyash contains considerable unburned carbon ( 10% and above), it cannot be utilized in cement manufacturing. Likewise the Bag Filter dust contains upto 25% unburned carbon and above 70% ash which again doesn't allow it to be reused viably as a fuel. Meanwhile, reducing the carbon content by the Carbon-burnout method is too expensive and polluting just to convert the wastes into usable Flyash.
As a result most of these wastes go into landfill, where they again contribute to ground and water pollution.
Surprisingly there are technologies which can not only effectively convert these wastes into usable items like recovered fuel and low carbon Flyash, but at the same time clean up the environment and save the companies great expenses. Its is called Carbon-Ash Separation and there are several ways of doing the same.
This presentation reviews the various approaches you can take to creating animations in your iOS apps.
It discusses UIKit animations, including curling pages up (as in the Maps app), flipping back and forth (as in the Stocks app) and image view animations.
It also describes Core Animation, including its implicit animations that occur when you change the value of certain animatable properties, as well as how to create explicit animations.
Cryogenics is the study of the operations at very low temperature (below −150 °C, −238 °F or 123 K) and the behaviour of materials at these temperatures.
So you are a young, inexperienced iOS developer preparing for your first ever interview. But you don’t know what they are going to throw at you during the interview. During your student’s life you have been searching for the answers, this is the first time you are looking for the questions. This power point presentation is the right answer for your quest of looking for the interview questions. These are the probable questions interviewee may ask you for the post of iOS developer. Good luck.
Created by: Cygnis Media
I have uploaded the report related to this slides. Piezo electricity is not a new concept but it has various applications in household and instrumentation engineering. U will get a overall knowledge about applications of piezoelectricity from this slides. So Don't forget to give feedback
Whether your vehicle is new or old-- all it wants a regular maintenance to run efficiently without any worry. Yes, there are repairing center to help, but they can't help you when you get stranded on the middle of the road in an unknown area. It might be a very little issue but as you don't know anything about your car, you have to wait for several boring hours till help arises. Here are some of the basic car maintenance tips that you should know for your own safety.
Weather service, maps and navigation, photo viewer, instant messaging, web browser, flick list or kinetic scrolling. You want all these with Qt? You get it!
Presentation by Ariya Hidayat held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Video for this seminar can be found here: http://www.youtube.com/watch?v=MNxVMYKaZP0
Mike has been an active member of the community since MonoTouch launched, and recently joined Xamarin’s excellent documentation team. He’ll show you how to get to grips with creating 2D graphics and modify PDF files on the fly within your MonoTouch applications.
Rewrite few familiar Cocoa Touch code examples from Obj-C to Swift by learning to use Closures, Enums, Switch-Case with Pattern matching, Singleton, GCD, CoreGraphics.
Presented at Tel Aviv iOS Developers Meetup.
NV_path_rendering is an OpenGL extension for CUDA-capable NVIDIA GPUs for performing resolution-independent 2D rendering. Standards such as Scalable Vector Graphics (SVG), PostScript, PDF, Adobe Flash, and TrueType fonts rely on path rendering. With NV_path_rendering, this important class of rendering is accelerated by the GPU in a way that co-exists with conventional 3D rendering.
For more information see:
http://developer.nvidia.com/nv-path-rendering
In this side, I introduce Webrender 1.0 (it have been updated to 2.0 after 08/03/2016) that is based on Rust language and OpenGL to develop a proof of concept to bring the game engine technology into Web browser. It mentions how Scene Graph, Batching, Composite work in this modern web browser, Servo.
Sharing thoughts about migrating from Objective-C to Swift.
Why, How and What. This presentation was held on Munich iOS Meetup 12/02/15. http://www.meetup.com/de/The-Munich-iOS-Developers-Meetup/events/226586543/
Interacting with the Qt Quick scene graph is a good bonus skill for any Qt developer to have. In this introductory webinar we will present this component: a graphical representation of the Item scene and an alternative method to QML coding. Proper use of the underlying scene graph can save performance at runtime. We will explore how to interact with the scene graph through a simple example and suggest when it is appropriate to use.
Implement an animated menu Svg icon.
At first, the icon is the classic burger menu icon. But when you click on it, it becomes a close icon with a fun “ninja” effect. The animation is reversed when you click on the close icon which turns it into the initial hamburger icon again. Take a look:
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
2. -Overview of the Quartz framework
- What is it?
- When do you need it?
-Core capabilities of framework:
- Contexts and Paths
- Drawing lines, curves, and images
- Applying transformations
-Recipes and Examples
Agenda
What will I learn?
4. -Apple’s 2D drawing framework based on the PDF imaging model
-Graphics API to produce lines, curves, transforms, gradients, etc.
-Uses painters model for drawing operations
What is Quartz 2D?
Wasn’t this supposed to be about Core Graphics?
Drawing Order Result
5. -Prefer to build your UI using images
- Better performance and caching
- Easier to create and maintain
- Keeps your graphics designers employed
-It’s best to design your UI using images…
When do I need it?
Isn’t this what graphics designers are for?
...until you can’t
15. -Graphics context provides the drawing area
-Manages core drawing states:
- Colors, line widths, transforms, etc.
- It’s a state machine
-Key Quartz Contexts:
- CGContext
- CGBitmapContext
- CGPDFContext
Quartz Graphics Contexts
The Canvas
16. -Current Transformation Matrix (CTM) defines the coordinate system
-Coordinate system varies on macOS and iOS/tvOS
Quartz Coordinate System
Drawing Orientation
0, 0
y
x
Positive 0, 0
y
x
Positive
macOS iOS and tvOS
17. -Drawing is defined in terms
of points
-Points are abstract,
infinitely thin
-Points live in User Space
CGContext Drawing
Quartz Points
p0
p1
19. -CGContext is the default drawing context
- Created by UIKit and AppKit
-Get a reference to it:
CGContext Drawing
CGContext
let context = UIGraphicsGetCurrentContext()
iOS and tvOS
let context = NSGraphicsContext.current()?.graphicsPort
macOS
23. Getting Started
Where do I draw?
class HelloQuartzViewController: UIViewController {
func drawBackground(recognizer: UIGestureRecognizer) {
}
}
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(randomColor())
context?.fill(view.bounds)
24. Getting Started
Where do I draw?
class HelloQuartzView: UIView {
override func draw(_ rect: CGRect) {
}
}
class HelloQuartzViewController: UIViewController {
func drawBackground(recognizer: UIGestureRecognizer) {
}
}
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(randomColor())
context?.fill(view.bounds)
25. Getting Started
Where do I draw?
class HelloQuartzView: UIView {
override func draw(_ rect: CGRect) {
}
}
class HelloQuartzViewController: UIViewController {
func drawBackground(recognizer: UIGestureRecognizer) {
}
}
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(randomColor())
context?.fill(view.bounds)
// Trigger call to HelloQuartzView's draw(:) method
helloView.setNeedsDisplay()
33. - CGColor is the native Quartz color type
- UIColor is the native UIKit color type
-Use UIColor in almost all cases
- Easier to create
- Named color initializers
- Easy to convert to and from CGColor
Defining Colors
CGColor vs UIColor
// Convert to Quartz Type
let cgColor = UIColor.red.cgColor
context.setFillColor(cgColor)
// Convert to UIKit Type
let uiColor = UIColor(cgColor: cgColor)
34. -Lines are the most essential primitive
-Lines are always defined by their endpoints
-Basic Recipe:
1. Begin a new path
2. Move to initial starting point
3. Add lines defining shape
4. Close the path (optional)
5. Draw Path
Drawing Lines
Defining Paths
43. -Arcs define circle segments
-Arcs are defined with the following:
- Center x, y coordinates
- Radius
- Start and stop angles (in radians)
- Direction (clockwise or counter-clockwise)
-Created using:
- addArc(center:radius:startAngle:endAngle:clockwise:)
- addArc(tangent1End:tangent2End:radius:)
Drawing Arcs
Constructing Paths
44. -Arc functions are not aware of flipped coordinate system
- Need to think upside down (or)
- Transform coordinate system before using
- UIBezierPath wraps Quartz GGPath functionality
- Access to underlying path with CGPath property
-Generally easier to use UIBezierPath on iOS and tvOS
- * In Swift 3, direct Quartz usages is very similar
UIBezierPath
More iOS/tvOS-friendly solution
53. -Quartz uses fill rules to determine what’s inside and outside of a
path.
-Uses one of the following:
- Non-zero Winding Rule (Default)
- Even Odd Rule
Fill Rules
To fill, or not to fill
55. -Affine transformations are essential to all graphics programming
regardless of platform
-Allow you to manipulate the coordinate system to translate,
scale, skew, and rotate
-Transform preserves collinearity of lines
Affine Transformations
Transforming the Coordinate System
X
56. -CTM can be modified with the following:
- translateBy(x:y:)
- scaleBy(x:y:)
- rotate(by:)
Current Transformation Matrix
Modifying the CTM
63. -A gradient is a fill that varies from one color to another
-Quartz supports two different gradient types
- Linear varies between two endpoints
- Radial varies between two radial endpoints
Gradients
Drawing Gradients
Linear Radial
64. -Gradients can be created using either:
- init(colorsSpace:colors:locations:)
- init(colorSpace:colorComponents:locations:)
-Both functions require the following:
- CGColorSpace
- Colors (components or array of CGColor)
- Array of CGFloat values defining gradient color stops
Creating a CGGradient
CGGradient
65. CGGradientRef
Building the gradient code
let startColor = UIColor.red
let endColor = UIColor.orange
let colors = [startColor.cgColor, endColor.cgColor] as CFArray
let locations: [CGFloat] = [0, 1]
let colorSpace = CGColorSpaceCreateDeviceRGB()
let gradient =
CGGradient(colorsSpace: colorSpace, colors: colors, locations: locations)!
let startPoint = CGPoint(x: rect.midX, y: rect.minY)
let endPoint = CGPoint(x: rect.midX, y: rect.maxY)
let opts = CGGradientDrawingOptions()
context.drawLinearGradient(gradient, start: startPoint, end: endPoint, options: opts)
68. -Quartz has broad support for images
-Represented as CGImage
-Can be drawn using:
- draw(image:rect:)
- draw(image:rect:byTiling)
- CGBitmapContext allows for dynamically building image data
Working with Images
CGImage
69. -Don’t draw in Quartz. Use UIImageView.
-Choose UIImage over CGImage
- Easier to load and cache image content
- Provides methods for drawing
- Is aware flipped coordinate system
- UIImage provides a CGImage property
-Use CGImage for more advanced cases
- Cropping, scaling, masking
- Dynamic image creation
CGImage vs UIImage
Which should I use?
71. Using Image Masks
Hiding behind a mask
// Mask image created by toMask() extension
guard let maskImage = UIImage(named: “round_mask")?.cgImage?.toMask() else { return }
guard let jeffersonImage = UIImage(named: "jefferson")?.cgImage else { return }
if let masked = jeffersonImage.masking(maskImage) {
// Draw shadow to offset from background
let shadowOffset = CGSize(width: 1, height: 1)
let shadowColor = UIColor.darkGray.cgColor
context.setShadow(offset: shadowOffset, blur: 12, color: shadowColor)
let maskedImage = UIImage(cgImage: masked)
maskedImage.draw(in: drawingRect(for: maskedImage))
}
72. Cropping Images
cropping(to:)
let albumImage = UIImage(named: "vh1")!
let cropRect = CGRect(x: 20, y: 20, width: 200, height: 200)
if let cgImage = albumImage.cgImage?.cropping(to: cropRect) {
// Create new UIImage and use as needed
let eddieImage = UIImage(cgImage: cgImage)
}
73. -Quartz is a powerful drawing engine for Apple platforms
-Essential skill to master to build beautiful apps
-Quartz + Swift 3 = Awesome
Summary