如何比较两个UIImage对象

我正在开发一个应用程序。在imageviews更改UIImageview图像之前,我正在使用.SO,我需要将该图像拍摄成UIimage对象并与另一个UIImage对象进行比较以发现两者是否相同。所以,请告诉我该怎么做。



慕婉清6462132
浏览 565回答 3
3回答

慕村225694

一种方法是先将它们转换为图像数据,然后进行比较。- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2{    NSData *data1 = UIImagePNGRepresentation(image1);    NSData *data2 = UIImagePNGRepresentation(image2);    return [data1 isEqual:data2];}

慕标5832272

Swift实现:func image(image1: UIImage, isEqualTo image2: UIImage) -> Bool {    let data1: NSData = UIImagePNGRepresentation(image1)!    let data2: NSData = UIImagePNGRepresentation(image2)!    return data1.isEqual(data2)}或者通过基于@nhgrif的建议扩展UIImage:import UIKitextension UIImage {    func isEqualToImage(image: UIImage) -> Bool {        let data1: NSData = UIImagePNGRepresentation(self)!        let data2: NSData = UIImagePNGRepresentation(image)!        return data1.isEqual(data2)    }}

烙印99

将Mark Tickner的解决方案更新为Swift 4import UIKitextension UIImage {    func isEqualToImage(_ image: UIImage) -> Bool {        let data1 = self.pngData()        let data2 = image.pngData()        return data1 == data2    }}这两个变量可能是过大的,但它们可能有助于向新手解释。可以缩短为:import UIKitextension UIImage {    func isEqualToImage(_ image: UIImage) -> Bool {        return self.pngData() == image.pngData()    }}
打开App,查看更多内容
随时随地看视频慕课网APP