ios - 如何在 iOS 中将 PNG 图像转换为 CMYK?

标签 ios colors uiimageview uiimage

我有一组用户生成的 PNG 图像,我需要将它们嵌入到可打印的 PDF 中。打印公司设定的限制之一是所有图像都在 CMYK 色彩空间中。如何将 PNG(或包含该 PNG 的 UIImage)转换为 CMYK?默认情况下,颜色空间为 sRGB。

最佳答案

你应该考虑CGColorSpace类和 CGColorSpaceCreateDeviceCMYK功能。 您可以使用 this 创建一个 CGContex初始化器并将 CMYK 颜色空间作为参数传递给它。然后从该上下文中绘制一个 CGImage 并从中创建 UIImage。

例子:

func createCMYK(fromRGB image: UIImage) -> UIImage? {
    let size = image.size
    let colorSpace:CGColorSpace = CGColorSpaceCreateDeviceCMYK()
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue)
    guard let context = CGContext(data: nil,
                                  width: Int(size.width),
                                  height: Int(size.height),
                                  bitsPerComponent: 8,
                                  bytesPerRow: 4 * Int(size.width),
                                  space: colorSpace,
                                  bitmapInfo: bitmapInfo.rawValue) else { return nil }            
    context.draw(image.cgImage!, in: CGRect(origin: .zero, size: size))
    guard let cgImage = context.makeImage() else { return nil }
    return UIImage(cgImage: cgImage)
}

关于ios - 如何在 iOS 中将 PNG 图像转换为 CMYK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331394/

相关文章:

iOS 应用滞后....图像可能是罪魁祸首吗?

ios - 如何在ios应用程序中正确弹出 View ?

iphone - 加载闪屏 Nib 时出现问题

java图像颜色公式

iOS swift UIImageView 在 tableView 单元格中更改图像

ios - 保留 AppStore 名称 - Placeholder iPhone App Time Limits

vba - 如何在Excel VBA中将纯色应用于数据栏?

colors - 在计算颜色之间的欧氏距离时,sRGB 比 L*a*b* 差多少?

ios - 使用图像作为 UIViewController 的背景并支持多种屏幕尺寸

ios - 在应用程序中显示的图像大小 - 尝试减小图像的大小