1
印刷用PDFに埋め込む必要のあるユーザー生成のPNG画像があります。印刷会社によって設定された制約の1つは、すべての画像がCMYK色空間にあることです。 PNG(またはそのPNGを含むUIImage)をCMYKに変換するにはどうすればよいですか?デフォルトでは、色空間はsRGBです。PNG画像をiOSのCMYKに変換するには?
印刷用PDFに埋め込む必要のあるユーザー生成のPNG画像があります。印刷会社によって設定された制約の1つは、すべての画像がCMYK色空間にあることです。 PNG(またはそのPNGを含むUIImage)をCMYKに変換するにはどうすればよいですか?デフォルトでは、色空間はsRGBです。PNG画像をiOSのCMYKに変換するには?
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)
}
それは動作しません。それは "とクラッシュします:CGBitmapContextCreate:サポートされていないパラメータの組み合わせ:詳細を表示するには、CGBITMAP_CONTEXT_LOG_ERRORS環境変数を設定してください" –