10
我使用的是NSImageView以顯示大約80幀的動畫GIF,每幀長度爲20ms。 NSImageView可以直接顯示GIF動畫,但問題在於它需要太多的CPU,連續10%左右(在我的核心i5處理器上)。 儀器顯示它花費了很多CPU時間來解碼GIF。NSImageView中的動畫GIF圖像
爲了使之更有效率,我曾嘗試沒有成功如下:
把幀QTMovie內發揮它(使用4%,爲我的進程和另外15%播放電影QTKitServer過程)
CGContextDrawImage(〜5%的CPU使用率)直接與繪製的觀點 - 我沒有出口的GIF的框架,我就創建了一個CGImageRef從一個30x30px.png我躺在附近。
我不知道還有什麼可以嘗試的。子類化NSImageView並以某種方式緩存圖像聽起來像一個好主意,但是,唉,我是可可初學者...任何想法都將不勝感激。謝謝!
你有沒有試過' - [NSImage setCacheMode:]'一個'NSImageCacheAlways'參數? – 2011-04-12 01:11:21
按照你的建議,我重寫了我的NSImageView子類,結果CPU使用率大約是以前的一半。我已經檢查並使用我正在騎自行車穿過的單個GIF框架上的'setCacheMode:'並沒有任何明顯的區別。不過,您的意見對我有幫助,所以謝謝! – 2011-04-14 19:50:49
你究竟是如何解決這個問題的?這是一個有趣的問題,我也試圖解決它。你在NSImageView子類中改變了什麼? – AlexQueue 2013-08-10 21:17:05