Ben boşuna hiçbir yere baktım. Bir iş parçacığında bazı görüntü yükleme yapıyorum ve UIKit iş parçacığı güvenli değil çünkü görüntüleri CGImageRefs olarak saklamak zorundayım ama bunu nasıl yapacağımı anlayamıyorum. Daha önce hiç Quartz ile oynamadım, bu yüzden kafamı karıştırıyor. Temel olarak sadece bir JPG'yi diskten bir CGImageRef'e yüklemeliyim. Ayrıca bonus puanları için, bir CGGGGG'ye bir GIF yüklemek için var mı?Tam olarak diskteki bir görüntüden bir CGImageRef yapmak nasıl
6
A
cevap
28
gcamp az ya da çok doğru olduğunu, bir arka plan iş parçacığı üzerinde bu kullanmak için ancak soruya cevap vermek oldukça güvenli, aşağıdaki çalışma olduğuna inanıyorum.
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename("file");
CGImageRef image = CGImageCreateWithPNGDataProvider(dataProvider, NULL, NO, kCGRenderingIntentDefault);
jpg görüntüleri, CGImageCreateWithJPEGDataProvider
bir fonksiyonu da vardır
8
UIKit'i kullanmanın ve CGImage
UIImage
'un uygunluğunu kullanmanın en basit yol olduğunu düşünüyorum. Böyle
şey:
UIImage* image = [UIImage imageNamed:@"Your Image.png"];
CGImageRef imageRef = image.CGImage;
İlgili konular
- 1. Bir UIView içeriğinden CGImageRef nasıl edinilir?
- 2. IntelliJ IDEA'da diskteki bir dosyayı nasıl silebilirim?
- 3. MATLAB: Bir görüntüden bir daire nasıl ekleyebilirim
- 4. CGImageRef adresinden NSImage'i edinme
- 5. IPTC verilerini bir görüntüden diğerine nasıl kopyalarım?
- 6. Android galerisindeki bir görüntüden nasıl yol alabilirim?
- 7. Bir görüntüden qt biçiminde bir pencere oluşturma
- 8. Tam olarak bir satır nasıl okunur?
- 9. C# bir resimdeki görüntüden bir bitmap nasıl elde edilir
- 10. Tam olarak bir ViewModel nedir?
- 11. Tam olarak bir ROM nedir?
- 12. PHP/GD, bir görüntüyü bir görüntüden diğerine nasıl kopyalayabilirsiniz?
- 13. Bir dizi oluşturulan görüntüden bir Quicktime filmi nasıl oluşturabilirim?
- 14. nasıl bir switch deyiminde parametre olarak bir vektör geçmek yapmak
- 15. iyileştirilmesi kopyalama Görüntüden bayt
- 16. Sabit diskteki Android sdk boyutunu nasıl düşürür
- 17. yapmak os.listdir() liste tam yolları
- 18. Tam olarak bir iptal noktası nedir?
- 19. Tam olarak bir sysroot nedir ve nasıl bir tane oluştururum?
- 20. Tam olarak tam olarak ne yapar? (...).
- 21. Sayfa tam olarak oluşturulduğunda bir Javascript işlevini nasıl yürütüyorsunuz?
- 22. Jmeter dosyasındaki bir yanıtı tam olarak kaydetme
- 23. iPhone: Bir alt görüntüden bir üst/alt yöntem çağırmak
- 24. node.js'de taranan bir görüntüden onay kutusunu işaretleyin
- 25. Bir CGImageRef öğesinden oluşturulmuş bir UIImage nesnesini ham verilere dönüştürme ve geri dönme
- 26. Tam olarak aşırı bir biçim/kodlama nedir?
- 27. Neo4j, eşleşme düğümü tam olarak bir etiketle
- 28. Eclipse - Tam olarak bir Builder nedir?
- 29. Tam olarak bir Singleton Tipi nedir?
- 30. Makro tanımı yapmak için bir argüman olarak nasıl iletilebilir?
Okay (Bittiğinde veri sağlayıcı ve görüntü serbest bırakmak için emin olun) ama mesele bu dizisindeki oluyor ve UIKit parçacığı güvenli değil. Aksi halde UIImage'ı geri gönderirim. Bir dosyadan bir görüntüyü okuyabilmem ve doğrudan bunun için bir CGImageRef oluşturmam gerekiyor. – Alexander
Ne yazık ki O.P., Apple'ın "Tüm UIKit nesneleri sadece ana iş parçacığında kullanılmalıdır" yazıyor. –
Yanılmıyorsam, UI güncellemeleri ana iş parçacığı üzerinde yapılmalıdır. UIKit'in diğer kısımları aslında vidalıdır. – gcamp