Domanda

Penso che mi manca qualcosa di veramente fondamentale qui. Se faccio questo con un legale URL / percorso che so esiste:

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

poi ho riferito al console che la larghezza è -2.080,177216 millions e l'altezza 0. Anche se so che la larghezza è in realtà il 50 e l'altezza 50. Ho provato a chiamare isValid e restituisce YES, e ho anche provato il controllo del dimensione della prima rappresentazione e restituiti gli stessi valori incasinato. Come mai l'immagine non viene caricato correttamente?

È stato utile?

Soluzione

Il metodo size restituisce un NSSize, una struct cui width e membri height sono di tipo float. Li stai trattando come int. Usa %f e tutto dovrebbe andare bene.

Altri suggerimenti

Fa questo aiuto?

setSize:

Imposta la larghezza e l'altezza dell'immagine.

- (void)setSize:(NSSize)aSize

Discussione:

La dimensione di un oggetto NSImage deve essere impostato prima di poter essere utilizzato. Se la dimensione dell'immagine non è già stato impostato quando si aggiunge una rappresentazione dell'immagine, la dimensione è tratto dai dati della rappresentazione dell'immagine. Per le immagini EPS, la dimensione è tratto dal rettangolo di selezione dell'immagine. Per le immagini TIFF, la dimensione è tratto dal ImageLength e gli attributi ImageWidth.

Modifica delle dimensioni di un NSImage dopo che è stato effettivamente utilizzato ridimensiona l'immagine. La modifica delle dimensioni invalida tutte le sue cache e li libera. Quando l'immagine è successiva mescolati, la rappresentazione selezionata disegnerà se stesso in una finestra fuori dallo schermo per ricreare la cache.

Disponibilità Disponibile in Mac OS X v10.0 e versioni successive. Vedere anche

NSImage non dimensione reale con alcune immagini?

È necessario per scorrere NSImageRep e impostare la dimensione dal più grande trovato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top