Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Cocoa:将图像缩放到ImageWell中_Cocoa_Image_Core Data_Rescale - Fatal编程技术网

Cocoa:将图像缩放到ImageWell中

Cocoa:将图像缩放到ImageWell中,cocoa,image,core-data,rescale,Cocoa,Image,Core Data,Rescale,我正在申请保持漫画书收藏有序。用户应该能够通过ImageWell将封面艺术品的图像拖动到程序中 由于无法再次将图像拖出应用程序,我不需要将图片保存为原始大小。像ImageWell那么大的图像就可以了 问题是如何使用应用程序重新缩放图像 为了使事情更加复杂,ImageWell与核心数据绑定。因此,在核心数据将图片保存为原始大小之前,我需要重新缩放图像。缩放图像的常用方法是分配一个具有所需较小尺寸的新NSImage,锁定聚焦,当然,完成后将原始图像绘制到NSImage unlockFocus中。从那

我正在申请保持漫画书收藏有序。用户应该能够通过ImageWell将封面艺术品的图像拖动到程序中

由于无法再次将图像拖出应用程序,我不需要将图片保存为原始大小。像ImageWell那么大的图像就可以了

问题是如何使用应用程序重新缩放图像


为了使事情更加复杂,ImageWell与核心数据绑定。因此,在核心数据将图片保存为原始大小之前,我需要重新缩放图像。

缩放图像的常用方法是分配一个具有所需较小尺寸的新NSImage,锁定聚焦,当然,完成后将原始图像绘制到NSImage unlockFocus中。从那里,您可以使用CoreGraphics API或NSImage上的TIFFRepresentation方法(如果您的需要很简单)以多种格式序列化图像

至于处理核心数据,我建议将图像保存在单独的实体中,并与拥有它的对象建立关系。原因是,核心数据在抓取时一次加载对象的所有数据,因此,当您不需要图像数据时,即使对于较小的图像,也可以避免每次抓取时将其加载到内存中的缓慢性能和内存压力。您可以在主实体上放置一个临时映像属性,根据需要延迟加载/存储映像


当您的图像使用新图像很好地更新其绑定时,这将是重新缩放图像并将其存储在数据对象中的绝佳机会。也就是说,您将通过绑定将全尺寸图像传递给数据对象,它将处理重缩放。

缩放图像的常用方法是分配一个具有所需较小尺寸的新NSImage,在其上锁定焦点,当然,完成后将原始图像绘制到NSImage unlockFocus中。从那里,您可以使用CoreGraphics API或NSImage上的TIFFRepresentation方法(如果您的需要很简单)以多种格式序列化图像

至于处理核心数据,我建议将图像保存在单独的实体中,并与拥有它的对象建立关系。原因是,核心数据在抓取时一次加载对象的所有数据,因此,当您不需要图像数据时,即使对于较小的图像,也可以避免每次抓取时将其加载到内存中的缓慢性能和内存压力。您可以在主实体上放置一个临时映像属性,根据需要延迟加载/存储映像


当您的图像使用新图像很好地更新其绑定时,这将是重新缩放图像并将其存储在数据对象中的绝佳机会。也就是说,您将通过绑定将全尺寸图像传递给数据对象,它将处理重缩放。

想想NSValueTransformer。一个值转换器就是。。。它转换值。因此,您需要调整图像的大小,例如,转换和值转换器通过绑定工作。如果您查看interface builder中的绑定,您将看到值转换器部分,您将在其中挂接转换器。变压器有两种主要的方法,一种是transformedValue方法,另一种是reverseTransformedValue方法。第一个用于在图像视图中显示数据,第二个用于相反方向。。。当数据写入核心数据模型时。所以它们是核心数据和接口之间的输入和输出方法


因此,对于您的情况,您可以按照Alex在reverseTransformedValue方法中解释的那样调整大小。有关所需操作的更多详细信息和示例,请参阅。

想想NSValueTransformer。一个值转换器就是。。。它转换值。因此,您需要调整图像的大小,例如,转换和值转换器通过绑定工作。如果您查看interface builder中的绑定,您将看到值转换器部分,您将在其中挂接转换器。变压器有两种主要的方法,一种是transformedValue方法,另一种是reverseTransformedValue方法。第一个用于在图像视图中显示数据,第二个用于相反方向。。。当数据写入核心数据模型时。所以它们是核心数据和接口之间的输入和输出方法

因此,对于您的情况,您可以按照Alex在reverseTransformedValue方法中解释的那样调整大小。有关所需操作的更多详细信息和示例,请参阅