На самом деле, я сделал некоторый прогресс ...
я установка параметров, как это:
var imageProperties:NSMutableDictionary = NSMutableDictionary()
imageProperties.setObject(NSNumber(float: 0.1), forKey: kCGImagePropertyGIFDelayTime as NSString)
imageProperties.setObject(NSNumber(bool: false), forKey: kCGImagePropertyHasAlpha as NSString)
imageProperties.setObject(NSString(string: "kUTTypeGIF"), forKey: kCGImageSourceTypeIdentifierHint as NSString)
imageProperties.setObject(NSNumber(bool: false), forKey: kCGImagePropertyGIFImageColorMap as NSString)
imageProperties.setObject(NSNumber(bool: true), forKey: kCGImageSourceShouldCache as NSString)
let nestedImageProperties:NSDictionary = [imageProperties: kCGImagePropertyGIFDictionary]
println("nestedImageProperties: \(nestedImageProperties)")
Который дает мне эту структуру:
nestedImageProperties: {
{
DelayTime = "0.1";
HasAlpha = 0;
ImageColorMap = 0;
kCGImageSourceShouldCache = 1;
kCGImageSourceTypeIdentifierHint = kUTTypeGIF;
} = "{GIF}";
}
я нашел a implementation, который определил следующие свойства:
let fileProperties = [kCGImagePropertyGIFDictionary as String: [kCGImagePropertyGIFLoopCount as String: 0]]
let frameProperties = [kCGImagePropertyGIFDictionary as String: [kCGImagePropertyGIFDelayTime as String: 1.0]]
давая эту структуру:
Frame Properties: [{GIF}: [DelayTime: 1.0]]
File Properties: [{GIF}: [LoopCount: 0]]
Затем я применил fileProperties к месту назначения:
CGImageDestinationSetProperties(destination, fileProperties as CFDictionaryRef)
и frameProperties друг изображений, как это было добавлено:
CGImageDestinationAddImage(destination, imageRef, frameProperties as CFDictionaryRef)
и, наконец, он работает, они применяются.
Не пробовал несколько объектов недвижимости, но должен быть в порядке.
Я не понимал, что должен был установить разные свойства для рамки и изображения, TY! Если вы хотите, чтобы ваши несколько свойств работали, вам просто нужно изменить объявление nestedImageProperties на это: let nestedImageProperties = [kCGImagePropertyGIFDictionary as String: imageProperties] таким образом вы получите {"{GIF}" = {props}} вместо этого наоборот, как и в структуре, которую вы опубликовали. – John
Не беспокойтесь, да, это правильный способ объявить ключ: значение в словаре;) Когда-то я скучаю по невероятно очевидным, ура. – theSiberman