swift - UIImage 等于

标签 swift uiimage

我需要检查加载到 UIImage 对象文件中的文件是否等于另一个图像,如果是,则执行一些操作。不幸的是,它不起作用。

emptyImage = UIImage(named: imageName)

if(image1.image != emptyImage) {
    // do something
} else {
    // do something
}

以上代码总是进入if分支。

最佳答案

您可以在 UIImage 上实现相等运算符,这将简化您在比较图像时的逻辑:

func ==(lhs: UIImage, rhs: UIImage) -> Bool {
    lhs === rhs || lhs.pngData() == rhs.pngData()
}

运算符比较 PNG 表示,如果参数指向相同的 UIImage 实例,则使用快捷方式

这还会在 UIImage 上启用 != 运算符。

请注意,.pngData 调用和字节到字节的比较可能是一项耗时的操作,因此在尝试比较大图像时要小心。

关于swift - UIImage 等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34752570/

相关文章:

ios - UIBezierPath : Make image of drawing only

iphone - NSCoding、NSData、UIImages 和性能

xcode swift 单元格detailTextLabel.text?。颜色取自日期

android - 如何在 Swift 中新建一个类型为其他类的参数?

ios - 如何在 applicationDidEnterBackground 中停止来自 ViewController 的 locationManagerUpdates

ios - View 在 iPhone plus 机型上显示不正确

ios - 自定义 UISlider 图像无法正常工作

ios - base64编码的图像并将其添加到UIImage

ios - 如何在 Swift 4 中将 UIImage 转换为字节数组

c++ - 在 SWIFT 中使用 C++ FFT 代码