取り込んだpngの背景を透明にしたい
現在、imagePickerControllerでカメラロールから選択した画像を、UIImageViewで画面に表示させる実装をしているのですが、以下の背景透明のpng画像を表示すると、背景が黒く表示されてしまいます。
背景を透明のままで表示したいのですが、どのようにすればよろしいでしょうか?
以下追記
storyboardは、カメラロールを呼び出すためのボタンだけ追加した以下のもので行っています。
このstoryboardに、TestViewControllerをつけています。TestViewControllerは以下のコードです。
import Foundation
import UIKit
class TestViewController: UIViewController {
var imageView: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.white
}
@IBAction func test(_ sender: UIButton) {
openPhoto()
}
}
extension TestViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func openPhoto() {
let sourceType:UIImagePickerControllerSourceType = UIImagePickerControllerSourceType.photoLibrary
// カメラが利用可能かチェック
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {
// インスタンスの作成
let cameraPicker = UIImagePickerController()
cameraPicker.sourceType = sourceType
cameraPicker.delegate = self
cameraPicker.allowsEditing = true
self.present(cameraPicker, animated: true, completion: nil)
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
self.imageView = UIImageView()
self.imageView?.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
self.imageView?.image = pickedImage
self.imageView?.center = self.view.center
self.imageView?.isOpaque = false
self.imageView?.backgroundColor = UIColor.white
self.view.addSubview(self.imageView!)
}
// カメラ画面(アルバム画面)を閉じる処理
picker.dismiss(animated: true, completion: nil)
}
}
この状態で、カメラロールからpng画像を選択して、動的に生成したUIImageViewで表示すると、以下のように背景が黒く表示されます。