dimensioni NSImage è sbagliato
-
03-10-2019 - |
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?
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.