2013-10-18 84 views
2

我一直在尋找使用CGImageDestinationRef創建gif文件,我一直未能找到任何文檔,我應該使用CGImageDestinationSetProperties應用哪些屬性以及哪些屬性我應該設置當我使用CGImageDestinationAddImage將圖像添加到CGImageDestination對象。何時使用CGImageDestinationSetProperties添加屬性以及何時添加屬性與CGImageDestinationAddImage

但我意識到這個問題不僅適用於將圖像文件導出爲GIF文件。

我看了一下CGImageSource返回的一些屬性,雖然提供了一些線索,但它卻是&錯過。但是,例如,似乎HasGlobalColorMap和LoopCount應該是使用CGImageDestinationSetProperties設置的屬性,而UnclampedDelayTime和DelayTime是添加圖像時應該設置的屬性。

我在指導我應該直接添加到CGImageDestinationRef的哪些屬性,以及添加圖像時應該添加哪些屬性?

謝謝

回答

2

我希望蘋果在解釋這些小細節方面做得更好。我也在爲此撓頭。

看着Image I/O Programming Guide的例子,所有的屬性都使用CGImageDestinationAddImage設置在單個圖像上(儘管這裏的描述在某種程度上與此相矛盾...)。

CGImageProperties Reference中列出了所有(?)可能的密鑰,供CGImageDestinationSetPropertiesCGImageDestinationAddImage使用。它使個人形象鍵,格式特定按鍵和之間的區別「圖像源容器屬性」(只有一個鍵):

圖像源容器屬性

屬性適用於容器一般但不一定是容器中的任何單個圖像。

它意味着(並通過隨機抽樣試驗支持一個錯誤)所有其他密鑰應使用個別圖像設置與CGImageDestinationAddImage

+1

最後,我需要通過反覆試驗來測試。這是我可以確定使用CGImageDestinationSetProperties設置{GIF} .LoopCount和{GIF} .HasGlobalColorMap的唯一方法。 – SheffieldKevin