質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2468閲覧

swift3において画像とテキストの合成

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/09/17 14:10

編集2017/09/21 11:53

現在このようにして、画像とテキストを合成しました
現在やりたいこととしては、決まっている画像があり、そこに日にちを表示させるようにしたいです。どのようにすればよろしいでしょうか?
swift初心者なためわからないことが多いと思いますがご回答よろしくお願いします

import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let text = "時間" let font = UIFont.boldSystemFont(ofSize: 100) // Screen Size の取得 let screenWidth:CGFloat = view.frame.size.width let screenHeight:CGFloat = view.frame.size.height // Emmy画像の UIImage インスタンスを生成 let imageEmmy:UIImage! = UIImage(named:"sample1") // Emmy画像の幅・高さの取得 let imageWidth = imageEmmy.size.width let imageHeight = imageEmmy.size.height // 描画領域を生成 let rect = CGRect(x:0, y:0, width:imageWidth, height:imageHeight) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Context 開始 // 一番大きい画像サイズでContextを開く UIGraphicsBeginImageContext(imageEmmy.size) // Retinaで画像が粗い場合 //UIGraphicsBeginImageContextWithOptions(imageEmmy.size, false, 0) // EmmyをUIImageのdrawInRectメソッドでレンダリング imageEmmy.draw(in: rect) // テキストの描画領域 let textRect = CGRect(x:100, y:imageHeight/2+40, width:imageWidth-250, height:120) let textStyle = NSMutableParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle let textFontAttributes = [ NSAttributedStringKey.font: font, NSAttributedStringKey.foregroundColor: UIColor.yellow, NSAttributedStringKey.paragraphStyle: textStyle ] // テキストをdrawInRectメソッドでレンダリング text.draw(in: textRect, withAttributes: textFontAttributes) // Context に描画された画像を新しく設定 let newImage = UIGraphicsGetImageFromCurrentImageContext(); // Context 終了 UIGraphicsEndImageContext() // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // UIImageView インスタンス生成 let imageView = UIImageView() imageView.image = newImage // 画像サイズをスクリーン幅に合わせる, scaling let scale = screenWidth / imageWidth let newRect = CGRect(x:0, y:0, width:imageWidth*scale, height:imageHeight*scale) // ImageView frame をCGRectMakeで作った矩形に合わせる imageView.frame = newRect // 画像の中心をスクリーンの中心にする imageView.center = CGPoint(x:screenWidth/2, y:screenHeight/2) // view に ImageView を追加する self.view.addSubview(imageView) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

日付を表示するコード

let now = Date() let dateFormatter = DateFormatter() dateFormatter.locale = Locale(identifier: "ja_JP") dateFormatter.dateFormat = "MM月dd日E曜日"

追記
決まった画像と日にちを合成させた後の、画像をカメラロールに保存できるようにしたいので、画像とlabelが別々に別れないほうが好ましいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2017/09/17 17:58

結局のところ、質問の内容は何ですか?
退会済みユーザー

退会済みユーザー

2017/09/17 21:59

決まっている画像に、変動するテキスト(今回は日にち)を入れるようにしたいです。
fuzzball

2017/09/20 01:20

画像の上にUILabelを乗せるのではダメなのでしょうか?
退会済みユーザー

退会済みユーザー

2017/09/21 11:32

失礼いたしました、依頼を出しておきました。
退会済みユーザー

退会済みユーザー

2017/09/21 11:34

画像と日にちを合成させた後の画像をカメラロールに保存できるようにしたいので、このような質問をさせて頂きました。質問がわかりずらくすいません。
guest

回答1

0

ベストアンサー

UIImageViewの上にUILabelを乗せ、そのUIImageViewをUIImageに変換後、カメラロールに保存すればいいと思います。

UIImageへの変換は「UIView UIImage 変換」などでググれば見つかります。

投稿2017/09/21 13:57

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/22 13:18

ご回答ありがとうございます imageLabel.image = getUIImageFromUIView(label) このようなコードでlabelをUIImageに変換できるという認識でよろしいですか
fuzzball

2017/09/25 06:57

「labelをUIImageに変換できる」という認識は正しいですが、なぜそのコードを例として書いたのか私には理解できません。
退会済みユーザー

退会済みユーザー

2017/09/25 07:08

諸事情により、その時パソコンが使えなくスマホで見ていたため、確認を取らせてもらいました。 余計な手間を取らせてしまい、すいません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問