Pregunta

Creo que me estoy perdiendo algo realmente básico aquí. Si hago esto con una URL / vía legal que sé que existe:

NSImage* img = [[NSImage alloc] initWithContentsOfFile:[[selectedItem url] path]];
NSLog(@"Image width: %d height: %d", [img size].width, [img size].height);

Luego llego informó a la consola que la anchura es de -2080177216 y la altura 0. A pesar de que sé que el ancho es en realidad 50 y la altura 50. Me trató de llamar a isValid y devuelve SÍ, y también trató de comprobar la tamaño de la primera representación y se devuelven los mismos valores en mal estado. ¿Cómo es que la imagen no se carga correctamente?

¿Fue útil?

Solución

El método size devuelve un NSSize, una estructura cuyo width y los miembros height son de tipo float. Estás tratándolos como int. Uso %f y todo debe estar bien.

Otros consejos

¿Esto ayuda?

setSize:

Establece la anchura y altura de la imagen.

- (void)setSize:(NSSize)aSize

Discusión:

El tamaño de un objeto NSImage debe ajustarse antes de que pueda ser utilizado. Si el tamaño de la imagen ya no se ha establecido cuando se añade una representación de la imagen, el tamaño se toma a partir de datos de la representación de la imagen. Para las imágenes EPS, el tamaño se toma del cuadro delimitador de la imagen. Para las imágenes TIFF, el tamaño se toma de la ImageLength y atributos ImageWidth.

Cambio del tamaño de un NSImage después de que se ha utilizado eficazmente cambia el tamaño de la imagen. El cambio de los invalida todas sus cachés de tamaño y los libera. Cuando la imagen está próximo composited, la representación seleccionada dibujarse a sí mismo en una ventana fuera de la pantalla para crear el caché.

Disponibilidad Disponible en Mac OS X v10.0 y posterior. Véase también

NSImage no el tamaño real con algunas fotos?

Es necesario iterar a través de NSImageRep y definir el tamaño de las más grandes encontradas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top