我環顧四周,無濟於事。我正在一個線程中進行一些圖像加載,因爲UIKit不是線程安全的我將不得不將圖像存儲爲CGImageRefs,但我無法弄清楚如何做到這一點。我還沒有玩過Quartz的任何東西,所以它讓我感到困惑。基本上我只需要從磁盤加載一個JPG到一個CGImageRef。同樣對於獎勵積分,是否有加載GIF到CGImageRef?如何正確地從磁盤上的映像製作CGImageRef
6
A
回答
28
gcamp或多或少是正確的,你是很安全的在後臺線程使用,但要回答你的問題,我相信下面會工作。
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);
還爲JPG圖像,CGImageCreateWithJPEGDataProvider
的功能。
(完成後一定要釋放的數據提供程序和圖像)
8
我認爲最簡單的方法是使用UIKit並使用UIImage
的合理性。
類似的東西:
UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;
相關問題
- 1. 如何從磁盤映像複製文件?
- 2. 如何創建磁盤的映像?
- 3. 如何從blob在磁盤上寫入映像?
- 4. GoogleAppEngineLauncher:數據庫磁盤映像格式不正確
- 5. SQLiteDatabaseCorruptException:數據庫磁盤映像格式不正確
- 6. SQLite「數據庫磁盤映像格式不正確」
- 7. Rails遷移問題:磁盤映像格式不正確?
- 8. 卸載映像磁盤
- 9. 如何正確釋放CGImageRef?
- 10. iPhone SDK上的sqlite數據庫磁盤映像格式不正確
- 11. 如何強制將映像添加到磁盤緩存
- 12. 如何從廣義Azure RM VM映像保留數據磁盤
- 13. 如何從磁盤映像生成VirtualBox虛擬機?
- 14. 從safari本地磁盤顯示圖像
- 15. 磁盤大小不正確
- 16. 如何從磁盤
- 17. 安裝磁盤映像時從磁盤仲裁中進行雙重回調
- 18. 如何使用redux-observable正確地獲取二進制映像?
- 19. 使用.NET創建磁盤映像
- 20. Mac OS X磁盤映像驗證
- 21. 將鉻安裝到Linux磁盤映像?
- 22. AFNetworking 3.0磁盤映像緩存
- 23. MySQL寫入映像BLOB到磁盤
- 24. 如何從本地磁盤顯示圖像?
- 25. 從非託管圖像列表轉儲映像到磁盤
- 26. 從軌道控制檯獲取「SQLite3 :: CorruptException:數據庫磁盤映像格式不正確」
- 27. 如何在磁盤映像捲上設置Finder窗口背景圖像
- 28. 應對數據庫文件:數據庫磁盤映像格式不正確
- 29. 本地磁盤上的映像未在Tomcat項目配置中加載
- 30. 如何將我的磁盤上的映像插入到數據庫表中?
好吧但問題是,這是在一個線程中發生的事情和UIKit不是線程安全的。否則,我只是發回UIImage。我需要能夠從文件中讀取圖像,並直接爲其創建CGImageRef – Alexander 2010-08-23 18:04:16
不幸的是,O.P.是正確的,Apple表示「所有的UIKit對象只能在主線程上使用」。 – 2010-08-23 18:04:39
如果我沒有弄錯,UI更新應該在主線程上完成。 UIKit的其他部分實際上是線程安全的。 – gcamp 2010-08-23 18:17:27