【发布时间】:2013-03-13 15:35:02
【问题描述】:
我在 stackowerflow 上阅读了很多关于解决方案的问题和答案,但仍然找不到可以帮助解决我的问题的解决方案。
所以我有 2 个非常大的图像,我需要比较它们。
图片不是用imageNamed:创建的,所以它们没有兑现,所以[image1 isEqual:image2]应该不起作用。
据我所知,比较它们的唯一解决方案是这个:
- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
{
return [UIImagePNGRepresentation(image1) isEqual:UIImagePNGRepresentation(image2)];
}
但是图片的尺寸确实很大,所以比较需要一些时间。
是否有任何属性可以帮助不使用上述方法检查它们是否相等?
例如,我可以得到image1.size 并将其与image2.size 进行比较,如果它们不相等,我不需要运行上面的方法。有任何想法吗?谢谢你。
【问题讨论】:
-
如果它们已经在内存中,它们是否被缓存并不重要。虽然我没有尝试过,但我看不出有任何理由
isEqual:不应该工作。你试过了吗? -
如何通过继承 UIImage 创建自定义对象并使用属性 e 扩展它。 G。 NSString *uniqueID 用于识别?
-
@Inafziger : 我试过 isEqual: ,没有帮助
-
您是通过网络还是从本地文件系统/包中检索图像?
-
UIPasteBoard,这就是为什么@iDroid 的想法不匹配,因为来自粘贴板的图像不会有我的 uniqueId,所以我认为我应该计算一些哈希值。
标签: iphone ios objective-c uiimage compare