2017-11-15 13 views
0

私はバブルの形の画像を持っています。画像の中央にテキストを追加したいので、画像を再描画するためにUIGraphicsBeginImageContextWithOptionsを使用しようとしました。青色原画像である enter image description hereUIGraphicsBeginImageContextWithOptionsを使用して非標準図形を描画する方法

、黒再ある:

コードは、次の通りである:内部

let imageSize = CGSize(width: 40, height: 40) 

     // the rect in which the image will be drawn in 
     let imageRect = CGRect(origin: CGPoint.zero, size: imageSize) 
     UIGraphicsBeginImageContextWithOptions(imageSize, true, 1.0) 
     // begining drawing things 

     // first, we draw the image in the specified rect 
     image.draw(in: imageRect) 

     let attributes = [ NSAttributedStringKey.foregroundColor: UIColor.red, 
          NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 20)] 
     let text = "55" 
     let size = text.size(withAttributes: attributes) 
     let rect = CGRect(x: 20 - size.width/2, y: 20 - size.height/2, width: size.width, height: size.height) 
     text.draw(in: rect, withAttributes: attributes) 

     let newImage = UIGraphicsGetImageFromCurrentImageContext()! 
     UIGraphicsEndImageContext() 
     return newImage 

私は所望の画像と黒背景を有する正方形を得ます描画された画像。どのように私は元の画像として画像を描画することができます知っている?

ありがとうございます!

答えて

-1

UIGraphicsBeginImageContextWithOptions関数の呼び出しの2番目の引数(opaqueパラメータ)にではなく、trueを渡す必要があります。

UIGraphicsBeginImageContextWithOptions(imageSize, false, 1.0) 

あなたは第3引数(scale)として0をも通過しなければならないので、画像が現在のデバイスの画面のスケールと一致するようにスケーリングされます。

+0

この回答に問題はありますか、何人かの子供の復讐投票がありますか? – rmaddy

関連する問題