Anand
Anand

Reputation: 1973

How to check a image selected is Panorama image or Not

How to check, the image selected from UIImagePickerController is a Panorama Image or not?

Upvotes: 2

Views: 1625

Answers (2)

krish
krish

Reputation: 4112

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
            }
        }
 }

Upvotes: 0

Raptor
Raptor

Reputation: 54212

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.

Upvotes: 1

Related Questions