我有一些代码可以将图像的色彩空间从RGB更改为GenericCMYK配置文件。我希望能够使用ICC配置文件将图像转换为CMYK色彩空间。在Photoshop中可以做到这一点,但是当您处理100幅图像时,该过程会花费太多用户时间,我正在尝试创建一个AppleScript小滴来为他们完成此操作。
我已经看过NSColorspace的页面,并且看来有一种方法可以做到这一点。我只是不知道如何将该Objective-C转换为ApplescriptObjC。这是对NSColorSpace中ICC配置文件的两个引用: 初始化?(iccProfileData:数据) 给定ICC配置文件,初始化并返回NSColorSpace对象。 var iccProfileData:数据? 创建接收方的ICC配置文件数据。
这是我感谢Macscripter.net的Shane的代码:
set theImage to (current application's NSImage's alloc()'s initWithContentsOfURL:theInput)
set imageRep to (theImage's representations()'s objectAtIndex:0)
set targetSpace to current application's NSColorSpace's genericCMYKColorSpace()
set bitmapRep to (imageRep's bitmapImageRepByConvertingToColorSpace:targetSpace renderingIntent:(current application's NSColorRenderingIntentPerceptual))
set theProps to (current application's NSDictionary's dictionaryWithObjects:{1.0, true} forKeys:{current application's NSImageCompressionFactor, current application's NSImageProgressive})
set jpegData to (bitmapRep's representationUsingType:(current application's NSJPEGFileType) |properties|:theProps)
set colorSpace to bitmapRep's colorSpaceName() as text
(jpegData's writeToURL:theOutput atomically:true)
我只需要弄清楚如何将ICC配置文件作为CMYK转换过程的停放区,我相信在以下代码行中会发生这种情况:
set targetSpace to current application's NSColorSpace's genericCMYKColorSpace()
有人可以给我一些指导吗?
谢谢!
答案 0 :(得分:0)
您正在查看Swift中的NSColorSpace文档。 AppleScriptObjC是Objective-C的桥梁,因此在Objective-C中查看文档(可以在页面标题中设置语言)更加有意义,您的代码片段将变为
set targetSpace to current application's NSColorSpace's alloc's initWithICCProfileData:iccData
其中iccData是您要使用的ICC配置文件数据。