创建具有相同图像比例的 CIImage?

Posted

技术标签:

【中文标题】创建具有相同图像比例的 CIImage?【英文标题】:Create CIImage with same image scale? 【发布时间】:2016-12-13 11:34:10 【问题描述】:

我有这样的对象的 UIImage

<UIImage: 0x17428b540> size 937.5, 1250 orientation 0 scale 2.000000

我想创建 CIIImage。

CIImage* ciImage = [[CIImage alloc] initWithCGImage:image.CGImage options:nil];

它的输出是这样的:

<CIImage: 0x174c003b0 extent [0 0 1875 2500]>

您可以看到 CIImage 的大小是 UIImage 大小的两倍。如何获得与 UIImage 相同比例(大小)的 CIImage?

【问题讨论】:

CIImage 正在获取该图像的点而不是像素,因此它是该图像的打印点。我认为.... 你解决了吗? 【参考方案1】:

CIImageCGImage 没有比例。只有当您将它们转换为 UIImage 时,您才能设置比例。

例如,要从 CGImage 创建带有刻度的 UIImage,请使用:

let image = UIImage(cgImage: your_cgImage, scale: your_scale, orientation: your_orientation)

(斯威夫特 4)

【讨论】:

【参考方案2】:

你可以试试这个

UIImage *image = YOUR_IMAGE;
CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
CGImageRef imgRef = CGImageCreateWithImageInRect([image CGImage], rect); // It returns CIImage only and size will be same.

【讨论】:

以上是关于创建具有相同图像比例的 CIImage?的主要内容,如果未能解决你的问题,请参考以下文章

从图像文件创建CIImage模式

使用 writeJPEGRepresentation 函数保存具有深度数据的 CIImage

设置两个 matplotlib imshow 图具有相同的颜色地图比例

通过自定义 CIFilter 运行图像时 CIImage 属性丢失

尝试将 CIImage 与从视频文件帧获得的纹理一起使用时,CIImage 为空白

具有 1x1 像素 PNG 的更好的响应式图像?