亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何比較兩個UIImage對象

如何比較兩個UIImage對象

慕婉清6462132 2019-11-18 12:49:51
我正在開發一個應用程序。在imageviews更改UIImageview圖像之前,我正在使用.SO,我需要將該圖像拍攝成UIimage對象并與另一個UIImage對象進行比較以發現兩者是否相同。所以,請告訴我該怎么做。
查看完整描述

3 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

一種方法是先將它們轉換為圖像數據,然后進行比較。


- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2

{

    NSData *data1 = UIImagePNGRepresentation(image1);

    NSData *data2 = UIImagePNGRepresentation(image2);


    return [data1 isEqual:data2];

}


查看完整回答
反對 回復 2019-11-18
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

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 UIKit


extension UIImage {


    func isEqualToImage(image: UIImage) -> Bool {

        let data1: NSData = UIImagePNGRepresentation(self)!

        let data2: NSData = UIImagePNGRepresentation(image)!

        return data1.isEqual(data2)

    }


}


查看完整回答
反對 回復 2019-11-18
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

將Mark Tickner的解決方案更新為Swift 4


import UIKit


extension UIImage {


    func isEqualToImage(_ image: UIImage) -> Bool {

        let data1 = self.pngData()

        let data2 = image.pngData()

        return data1 == data2

    }


}

這兩個變量可能是過大的,但它們可能有助于向新手解釋??梢钥s短為:


import UIKit


extension UIImage {


    func isEqualToImage(_ image: UIImage) -> Bool {

        return self.pngData() == image.pngData()

    }


}


查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 714 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號