0
既存のUIImageとStringを使用してUIImageを作成しようとしています。新しい画像を作成するためにUIImageの上にテキストを描画する方法
私は運動場の中にこのコードを使用しようとしてきた:
import UIKit
let filter = CIFilter(name: "CIQRCodeGenerator")!
var data = "cat".dataUsingEncoding(NSISOLatin1StringEncoding, allowLossyConversion: false)
filter.setValue(data, forKey: "inputMessage")
filter.setValue("Q", forKey: "inputCorrectionLevel")
var image = filter.outputImage!
let scaleX = CGFloat(9.8)
let scaleY = CGFloat(9.8)
let img = UIImage(CIImage: image.imageByApplyingTransform(CGAffineTransformMakeScale(scaleX, scaleY)))
var textColor = UIColor.blackColor()
var textFont = UIFont(name: "Helvetica Bold", size: 12)!
let scale = UIScreen.mainScreen().scale
UIGraphicsBeginImageContextWithOptions(CGSize(width: img.size.width, height: img.size.height), false, scale)
let textFontAttributes = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor
]
img.drawAtPoint(CGPoint(x: 0, y: 100))
var rect = CGRectMake(0, 0, img.size.width, img.size.height)
NSString(string: "cat").drawInRect(rect, withAttributes: textFontAttributes)
var newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
残念ながら、これは既存の画像の上にオーバーレイテキストをしながら、それは私が上のオーバーレイてるQRイメージですので、私は残したいですQR画像の最上部とテキストの間のスペース。
私はこれを達成するのは難しいことではないと感じていますが、いくつかのガイダンスが必要です。
ありがとうございました
質問が分かりません。あなたは 'drawAtPoint'と' drawInRect'(なぜ両方を使用していますか?)と 'drawInRect'でテキストを描画しているのはあなたです。だから彼らはどこに行くのか言っている。あなたが置いている場所が気に入らなければ、好きなところに置いてください。 – matt
私は悪いです、私は仕事に挑戦していたコードを入れました。それを更新しました。 –