2010-04-21 17 views
8

PNG görüntüsünü NSImage'a nasıl okuyabilirim? Aşağıdaki şekilde çalıştı, ancak ben bazı garip değer elde ediyorum görüntünün .. genişliğini ve büyüklüğünü alınca herhangi biri son derece uygun .. doğru yola beni yönlendirebilir eğer ..PNG görüntüsünü NSImage'a nasıl okuyabilirim?

NSImage * picture = [[NSImage alloc] initWithContentsOfFile: [bundleRoot stringByAppendingString:tString]]; 

NSLog(@"sixe %d %d",picture.size.width, picture.size.height); 
if(picture){ 
    NSLog(@"Picture is not null"); 
}else { 
    NSLog(@"Picture is null."); 
} 

Teşekkür

+0

Bu, .png öğesindeki alfa kanalı dikkate almıyor gibi görünüyor. Bunu korumanın bir yolu var mı? –

cevap

6

Görüntüyü yüklemek için kullandığınız kod doğru.

Boyutu görüntülemek için kod yanlıştır; NSSize üyeleri,% f biçimindeki dize ile yazdırılması gereken CGFloat'tır:

NSLog(@"size %f %f",picture.size.width, picture.size.height); 
+0

Hızlı yanıt için Thx, aşağıdaki kodu Mac OS X Iphone App -> UIKit kullanarak nasıl değiştirebileceğinizi söyler misiniz? Certect = CGRectMake (offset.x * scale, offset.y * scale, scale * size .width, scale * size.height); UIGraphicsPushContext (ctx); [image drawInRect: rect]; UIGraphicsPopContext(); – Sam

+1

Çizim Kılavuzu'na bakın (http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html). Grafiksel bağlamın nasıl oluşturulacağını ve resimlerin nasıl çizileceğini açıklar. –

2

[NSImage imageNamed:tString]'u kullanın. tString, görüntü dosyasının temel dosya adı olmalıdır; ve bir dosya uzantısı içermemelidir.

+0

Hızlı yanıt için Thx, aşağıdaki kodu Mac OS X Iphone App -> UIKit kullanarak nasıl değiştirebileceğinizi söyler misiniz? Certect = CGRectMake (offset.x * scale, offset.y * scale, scale * size .width, scale * size.height); UIGraphicsPushContext (ctx); [image drawInRect: rect]; UIGraphicsPopContext(); – Sam

İlgili konular