【发布时间】:2020-12-11 15:15:42
【问题描述】:
我正在尝试获取CIImage 解压缩数据。
目前我发现获取压缩数据的唯一方法是使用CIContext,如下所示:
let ciContext = CIContext()
let ciImage = CIImage(color: .red).cropped(to: .init(x: 0, y: 0, width: 192, height: 192))
guard let ciImageData = ciContext.jpegRepresentation(of: ciImage, colorSpace: CGColorSpace(name: CGColorSpace.sRGB)!, options: [:]) else {
fatalError()
}
print(ciImageData.count) // Prints 1331
是否有可能(尽可能高效地)获得未压缩的CIImage 数据?
【问题讨论】:
-
你知道JPEG是一种压缩图像数据的格式吗?
-
嘿@MartinR,感谢您的回复!是的,但是在拍摄常规 .jpg 图像时,我可以计算原始数据 (WidthxHeightxChannelsx4)。但是在创建 CIIMage 时,我没有得到相同的值,或者至少计算到 442368
-
"WidthxHeightxChannelsx4" 不是原始数据。如果您要以另一种不进行压缩的格式而不是 jpeg 存储图像,这就是需要多少字节。原始 jpeg 数据 为 1331 字节。
-
ciImageData.count是 JPEG 压缩图像的大小。图像压缩的真正目的是使用比原始图像大小更少的字节。 -
@Sweeper 谢谢你的澄清。说得通。是否可以获得 CIImage 的原始数据(未压缩)?我正在尝试提供一个预期为 192x192 (RGB) 的 ML 模型,并且在尝试使用
CIImage it says Provided data count 1379 must match the required count 442368.提供它时
标签: ios swift image-processing core-image ciimage