2010-04-21 10 views
8

cómo puedo leer imágenes PNG en NSImage. Probé la siguiente manera, pero cuando llegue el ancho y el tamaño de la imagen que yo estoy haciendo algún valor raro .. si alguno me puedo dirigir en el camino correcto .. muy apropiado ..Cómo leer imágenes PNG en NSImage

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."); 
} 

Gracias

+0

Esto parece ignorar el canal alfa en mi .png. ¿Hay alguna manera de retener esto? –

Respuesta

6

Su código para cargar la imagen es correcto.

El código para mostrar el tamaño es incorrecto; Los miembros de NSSize son CGFloat que deben imprimirse con la cadena de formato% f:

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

Thx para una respuesta rápida, ¿me puede decir cómo convertir el siguiente código a Mac OS X Iphone App -> usando UIKit CGRect rect = CGRectMake (offset.x * escala, offset.y * escala, escala * tamaño .width, scale * size.height); UIGraphicsPushContext (ctx); [image drawInRect: rect]; UIGraphicsPopContext(); – Sam

+1

Eche un vistazo a la Guía de dibujo (http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html). Explica cómo obtener un contexto gráfico y cómo dibujar imágenes. –

2

Utilice [NSImage imageNamed:tString]. tString debe ser el nombre de archivo base del archivo de imagen; y no necesita contener una extensión de archivo.

+0

Thx para una respuesta rápida, ¿me puede decir cómo convertir el siguiente código a Mac OS X Iphone App -> usando UIKit CGRect rect = CGRectMake (offset.x * scale, offset.y * scale, scale * size .width, scale * size.height); UIGraphicsPushContext (ctx); [image drawInRect: rect]; UIGraphicsPopContext(); – Sam

Cuestiones relacionadas