4 contentsの直接加工
残るは「3.CGImageを作成しcontentsプロパティに直接設定する」方法です。CGImageはUIKitフレームワークを使って作成する方法や、CGContextの派生クラスであるCGBitmapContextを作って作成する方法などがあります。
4.1 UIKitフレームワークを使ったCGImageの作成
ここでは簡単なUIKitを使う方法を紹介し、CGBitmapContextは別のステップで紹介します。
UIKitではオフスクリーンをUIImageクラスで管理しています。そしてUIImageにはCGImageを提供するためのCGImageプロパティが用意されています。そのため、まずUIImageインスタンスを作成し、そこからCGImageプロパティを通してCGImageを取り出して、これを直接CALayerのcontentsプロパティに設定できます。
【UIImageクラス】
UIKitで画像(オフスクリーン)を管理するクラス。
注意)UIImageはUIKitで使いやすいようにCGImageを覆ったクラスと考えてもよいでしょう。これには、先にMac用としてCGContextやCGImageによる描画用フレームワーク(Core Graphics)があり、その後、iOS用にUIKitフレームワークが用意されたという歴史的な経緯も関係するように思えます。UIColorにCGColorプロパティが用意されているところなども、同じ理由ではないでしょうか
UIImageインスタンス自体は、後述するUIGraphicsBeginImageContextでオフスクリーンを作成し、そこに描画をおこない、UIGraphicsGetImageFromCurrentImageContextで、そのオフスクリーンからUIImageを作り出すという形で作成します。</
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録