swiftで画像の生成サンプル(playgroundを使用)
デザインとかは疎いんで
なんかいい感じのものがあったら参考にしようと思いましてm(_ _)m
サンプル(Playgroundで準備)
基本
// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" // ビューのサイズ let size = CGSize(width: 200, height: 200) // UIViewを生成 let view:UIView = UIView(frame: CGRect(origin: CGPointZero, size: size)) view.backgroundColor = UIColor(white: 0.9, alpha: 1.0) // PlaygroundのTimelineに表示するためのview let preview = view
最初はイメージが見えていないのでクリックしてイメージを表示
↓
ちょっとだけ加工
のものをほぼパクったんですけど
// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" func UIColorFromRGB(rgbValue: UInt) -> UIColor { return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) } // ビューのサイズ let size = CGSize(width: 200, height: 200) // UIViewを生成 let view:UIView = UIView(frame: CGRect(origin: CGPointZero, size: size)) view.backgroundColor = UIColor(white: 0.9, alpha: 1.0) // CoreGraphicsで描画する UIGraphicsBeginImageContextWithOptions(size, false, 0) // 描画する let path = UIBezierPath() path.moveToPoint(CGPointMake(50, 50)); path.addLineToPoint(CGPointMake(150, 50)) path.addLineToPoint(CGPointMake(150, 150)) path.addLineToPoint(CGPointMake(50, 150)) path.addLineToPoint(CGPointMake(50, 50)) UIColor.orangeColor().setStroke() path.stroke() UIColorFromRGB(0xFF0000).setFill() path.fill() // 文字を描画する let attrString = NSAttributedString( string: "サンプル", attributes:[NSForegroundColorAttributeName: UIColor.blackColor(), NSFontAttributeName: UIFont.boldSystemFontOfSize(20.0)]) attrString.drawAtPoint(CGPointMake(50, 50)) // viewのlayerに描画したものをセットする view.layer.contents = UIGraphicsGetImageFromCurrentImageContext().CGImage UIGraphicsEndImageContext() // PlaygroundのTimelineに表示するためのview let preview = view
↓
文字や線を描画できるようです
所感
だんだんイメージが出来上がっていくのは面白いと思いました。
やってみたいけど、
そもそも描画うんぬんがわかっていないのでそこから学習しないといけない。
複数のことを併用すると時間がかかりそうだけどわかっていないことを後回しにするとあとでまた同じことに時間を費やすことも考えられるので基本的な部分だけでも理解しておく必要がありそうです。
とりあえず、UIGraphicsBeginImageContextとかから調べてみないと…