Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c iOS:在核心数据中存储缩略图_Objective C_Ios_Core Data_Uiimage - Fatal编程技术网

Objective c iOS:在核心数据中存储缩略图

Objective c iOS:在核心数据中存储缩略图,objective-c,ios,core-data,uiimage,Objective C,Ios,Core Data,Uiimage,我需要从我的应用程序中从iPhone/iPad照片库中获取一些图像,并将它们存储在核心数据实体中,然后在UITableViewCell中显示为小缩略图(48x48像素),在细节UIView中显示为80x80像素。我遵循了Recipes示例应用程序,其中他们使用UIImageJPEGRepresentation(value,0.1)转换为NSData并将字节存储在核心数据中,并且最终不会占用太多空间,这很好。但是在检索数据时,使用UIImage*UIImage=[[UIImage alloc]in

我需要从我的应用程序中从iPhone/iPad照片库中获取一些图像,并将它们存储在核心数据实体中,然后在UITableViewCell中显示为小缩略图(48x48像素),在细节UIView中显示为80x80像素。我遵循了Recipes示例应用程序,其中他们使用
UIImageJPEGRepresentation(value,0.1)
转换为NSData并将字节存储在核心数据中,并且最终不会占用太多空间,这很好。但是在检索数据时,使用
UIImage*UIImage=[[UIImage alloc]initWithData:value]
并将其显示为带有“Aspect Fit”的缩略图,它看起来非常糟糕且粗糙。我尝试在JPEG压缩中更改图像质量变量,但即使将其设置为0.9也无济于事


这正常吗?有没有更好的方法来压缩图像,而不会造成太多的颗粒?因为我只想显示一个小的缩略图,然后再显示一个稍大一点的缩略图,所以我觉得核心数据非常适合存储它,因为它(理论上)也应该支持iCloud。但如果看起来很糟糕,那我就得重新考虑了

两件事,您是否将图像大小调整到正确的大小?您是否尝试过
UIImagePNGRepresentation()
?这样可以在不降低质量的情况下压缩它

两件事,您是否将图像大小调整到正确的大小?您是否尝试过
UIImagePNGRepresentation()
?这样可以在不降低质量的情况下压缩它

如果UIImagePNGRepresentation(无损)给您提供了不好的图像,那么问题在于图像大小调整代码。核心数据只是把你放进去的东西还给你,所以如果你把坏图像拿出来,那是因为你把坏图像放进去了


一个是你的iPhone/iPad视网膜,另一个不是?如果是这样的话,问题可能在于您并不真正想要48x48像素的图像,而是想要48x48点(这意味着您需要2倍图像96x96才能显示视网膜质量)。

如果UIImagePngRespresentation(无损)给您提供的图像不好,那么问题在于图像大小调整代码。核心数据只是把你放进去的东西还给你,所以如果你把坏图像拿出来,那是因为你把坏图像放进去了


一个是你的iPhone/iPad视网膜,另一个不是?如果是这样的话,问题可能是您并不真正想要48x48像素的图像,而是想要48x48点(这意味着您需要2张96x96像素的图像才能显示视网膜质量)。

谢谢。我两种都试过了,但在任何情况下,图像都显得很糟糕。它在iPhone上工作得很好,但在iPad上,从图库中拾取图像是巨大的,可能在48x48缩略图中进行方面匹配看起来不太好。你会推荐什么样的UIImage大小调整算法?也许问题就在于这个。我用这个:谢谢。我两种都试过了,但在任何情况下,图像都显得很糟糕。它在iPhone上工作得很好,但在iPad上,从图库中拾取图像是巨大的,可能在48x48缩略图中进行方面匹配看起来不太好。你会推荐什么样的UIImage大小调整算法?也许问题就在于这个。我用这个: