フォト アルバムから選択した画像がUIImagePickerController
、ユーザーが希望するトリミング方法とは異なる方法でトリミングされることがあります。これは約で起こります。50 件の画像アップロードのうちの 1 件。
これが発生すると、画像は常に左上隅から画像の一部に切り取られます。これは、(1) ユーザーがトリミングするために選択したと思われる赤い四角形で示され、(2) サーバー上で最終的にどの画像が表示されるかを示す画像の例です。
(1) の選択は、ユーザーがクロップを正確にどのように配置するかが不明であり、この不適切なクロップをまだ再現できなかったため、仮定です。これは、ライブ アプリでのみ観察されています。一部のユーザーは、同じ画像を何度もアップロードしようとして、常に同じ不適切なトリミングを行い、最終的に苦情を申し立てました。したがって、ユーザーがこのように意図的に画像をトリミングしたわけではありません。
一部のユーザーは別の画像をアップロードしようとしましたが、それらはすべて正しくトリミングされていませんでした。
コードは次のとおりです(簡略化されていますが、画像には何も起こりません):
class ImagePicker {
private let imagePicker = UIImagePickerController()
func showPicker() {
imagePicker.sourceType = .PhotoLibrary
imagePicker.mediaTypes = [kUTTypeImage as String]
imagePicker.allowsEditing = true
imagePicker.delegate = delegate
imagePicker.modalPresentationStyle = .OverFullScreen
parentViewController.presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let image = info[UIImagePickerControllerEditedImage] as? UIImage {
uploadImage(image)
}
picker.dismissViewControllerAnimated(true, completion: nil)
}
func uploadImage(image: UIImage) {
let imageData = UIImageJPEGRepresentation(image, 0.75)!
let imageFile = PFFile(name: "image.png", data: imageData)
// Upload to Open Source Parse Server which stores the image in an Amazon S3 bucket.
let imageObject = PFObject(className: "ImageClass")
imageObject(imageFile, forKey: "imageFile")
imageObject.saveInBackground()
}
}
なぜこれが起こるのか誰か知っていますか?
アップデート:
iPad で問題を再現できたので、ここで結果を更新します。
アップデート:
UIImagePickerViewController
この問題は iPad でのみ発生したため、画像をトリミングするときのバグに関連していると考えられます。