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

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

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

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

0回答

1409閲覧

AVFoundationとCollectionViewを使用した際、スタンプ画像の大きさが小さくなった状態で合成されてしまう。

acid

総合スコア20

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/02/07 12:43

swift歴2,3ヶ月の初心者です。
現在、スタンプカメラアプリを作成しています。

下記、問題点に関して質問させていただきます。

問題点:カメラのプレビュー画面とCollectionViewからもってきたスタンプ画像を合成したい時、
スタンプ画像の大きさが小さくなった状態で合成されてしまう。

質問内容:カメラからのプレビュー画面と複数のスタンプ画像を合成した時、
スタンプの大きさが小さくならないように合成するには、どういった
コーディングをすべきでしょうか。
また、canvasView(CollectionViewからもってきたスタンプ画像を配置しているビュー)の
子ビュー(CollectionViewからもってきたスタンプ画像)の座標やサイズの情報は
どうのような手段で取得できますでしょうか。

補足:xcode,swift,AVFoundation,CollectionViewを使用
書籍サンプル:詳細!Swift2iPhoneアプリ開発入門ノートのサンプルコードを
少し参考にさせていただきました。

撮影ボタンを押した際のコードは、下記のとおりです。
非常に初心者で申し訳ありませんが、ご教示願います。

@IBAction func takePhoto(sender: AnyObject) {
let myAVConnection = myImageOutPut.connectionWithMediaType(AVMediaTypeVideo)
myImageOutPut.captureStillImageAsynchronouslyFromConnection(myAVConnection, completionHandler: {(imageDataBuffer, error) -> Void in
let myImageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(imageDataBuffer)
let stillImage = UIImage(data: myImageData)
let flippedImage = self.flipHorizontal(stillImage!)
let imageWidth = (stillImage!.size.width)
let viewWidth = self.view.bounds.width
let scale = imageWidth / viewWidth
let stampW = self.stampImage.size.width * scale//(CollectionViewから持ってきた画像ではなく、カメラのプレビュー画面の上に配置した画像の情報です)
let stampH = self.stampImage.size.height * scale
let stampX = self.stampView.center.x * scale - stampW/2
let stampY = self.stampView.center.y * scale - stampH/2
let newcanvasW = self.canvasView.bounds.width * scale //(CollectionViewから持ってきた画像の情報です)
let newcanvasH = self.canvasView.bounds.height * scale
var capturedImage = flippedImage
UIGraphicsBeginImageContextWithOptions(CGSizeMake(newcanvasW, newcanvasH), self.canvasView.opaque, 0.0)
capturedImage.drawAtPoint(CGPointMake(0, 0))
self.stampImage.drawInRect(CGRectMake(stampX, stampY, stampW, stampH))
self.canvasView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
capturedImage = UIGraphicsGetImageFromCurrentImageContext()
UIImageWriteToSavedPhotosAlbum(capturedImage, self, nil, nil)
UIGraphicsEndImageContext()
})
}

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問