为图像文件

时间:2017-09-07 11:01:09

标签: python macos core-graphics

我正在尝试将TIFF字典添加到OS X中的图像文件中。 From Apple's documentation,看起来kCGImagePropertyTIFFDictionary定义了一个字典,然后在其中包含kCGImagePropertyTIFFXResolution等字符。

我看不出如何在我的python代码中实现它。目前,我刚刚将字典作为键和其他键一起使用。 (因此它不会将任何键设置到文件中。) 这是我的代码:

options = {
    kCGImagePropertyTIFFDictionary: 'TIFFDictionary',
    kCGImagePropertyTIFFXResolution: "300",
    kCGImagePropertyTIFFYResolution: "300",
    kCGImagePropertyTIFFResolutionUnit: 2
    }   
CGImageDestinationAddImage(destination, image, options)
CGImageDestinationSetProperties(destination, options)

这是来自open source script的一些其他python代码,可能有用,但我无法理解它在做什么。

imageProps = CGImageSourceCopyPropertiesAtIndex(imageSrc, 0, None)
        if imageProps is not None :
            tiffProps = imageProps[kCGImagePropertyTIFFDictionary]
            if tiffProps is not None :
                xRes = tiffProps[kCGImagePropertyTIFFXResolution]
                yRes = tiffProps[kCGImagePropertyTIFFYResolution]

1 个答案:

答案 0 :(得分:0)

原来需要嵌套词典。另一个问题是数字必须是数字,不足为奇。

options = {
    kCGImagePropertyTIFFDictionary: {
        kCGImagePropertyTIFFXResolution: 300,
        kCGImagePropertyTIFFYResolution: 300,
        kCGImagePropertyTIFFResolutionUnit: 2
    }
}

更好的解决方案是根本不使用TIFF字典,因此它可以使用其他文件格式:

        options = {
            kCGImagePropertyDPIHeight: 300,
            kCGImagePropertyDPIWidth: 300
            }