How to check a image selected is Panorama image or Not

≯℡__Kan透↙ 提交于 2019-12-02 02:08:57

In this UIImagePickerController delegate method (be sure to add delegate methods to your View Controller class):

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
  [self dismissViewControllerAnimated:YES completion:NULL];
  UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];   

  // determine if it's panorama by checking its dimension
  CGFloat imageWidth = image.size.width;
  CGFloat imageHeight = image.size.height;

  // display the image if needed
  [self.imageView setImage:image];

  self.imagePickerController = nil;
}

Theoretically panorama images have much longer width than normal image. But this can't check if it is a web image downloaded from elsewhere.

Swift 3.0

As per above suggestion we can check panorama images are more in width so we can ignore large width images

Normal Image info " size {960, 960} orientation 1 scale 1.000000"

Panorama Image Info " size {13632, 2936} orientation 1 scale 1.000000"

let str = "\(info["UIImagePickerControllerOriginalImage"]!)"

   let s = str.slice(from: "{", to: "}")

    if let arr = s?.components(separatedBy: ","){
        if arr.count >= 2 {
            if Int(arr[0])! > 11000 {
                picker.dismiss(animated:true, completion: nil)
                self.makeToast("Invalid Image!!!")
                return
            }

            if Int(arr[1])! > 11000 {
                 picker.dismiss(animated:true, completion: nil)
                self.makeToast("Invalid Image!!!")
                return
            }
        }
 }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!