How to compare two UIImage objects
I am developing one application.In that i am using the imageviews
.SO before changeing the UIImageview
image I need to take that image in UIimage
obejct and compare with another UIImage
object for finding both are sam or not. So please tell me how to do that one.
Solution 1:
One way is to convert them to image data first, and then compare that.
- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
{
NSData *data1 = UIImagePNGRepresentation(image1);
NSData *data2 = UIImagePNGRepresentation(image2);
return [data1 isEqual:data2];
}
Solution 2:
A Swift implementation of @Simon's answer:
func image(image1: UIImage, isEqualTo image2: UIImage) -> Bool {
let data1: NSData = UIImagePNGRepresentation(image1)!
let data2: NSData = UIImagePNGRepresentation(image2)!
return data1.isEqual(data2)
}
Or by extending UIImage based on @nhgrif's suggestion:
import UIKit
extension UIImage {
func isEqualToImage(image: UIImage) -> Bool {
let data1: NSData = UIImagePNGRepresentation(self)!
let data2: NSData = UIImagePNGRepresentation(image)!
return data1.isEqual(data2)
}
}