Ho un file .png nella mia cartella delle risorse. (La dimensione effettiva è 411 KB) Quando converto l'uiimage in nsdata e provo ad accedere alla proprietà length, mi dà torto valore.restituisce la dimensione errata (byte) per un'immagine
Codice ...
UIImage *image = [UIImage imageNamed:@"sample.png"];
NSData *imgData = [[NSData alloc] initWithData:UIImageJPEGRepresentation(image, 1.0)];
int imageSize = imgData.length;
NSLog(@"Image size in KB is %d",imageSize/1024); //-------- returns 631 KB
Si prega di farmi sapere se c'è qualche altra proprietà che aiuta ..
ecco la mia richiesta .... Voglio sapere la dimensione dell'immagine che prendo da uimagepicker. La dimensione esatta dell'immagine quando la vedo nel mirino e la dimensione che mi viene restituita dopo averla presa dalla libreria è totalmente diversa ... Esiste qualche altra proprietà che può essere usata al posto della lunghezza?
631 Kb è la quantità di memoria utilizzata da imgData. Questo non ha una relazione diretta con il modo in cui l'immagine è memorizzata nel file reale. Se vuoi ottenere la dimensione del file, usa il filesystem. –
@RobvanderVeer chiaramente la lunghezza dei dati e le dimensioni del file avrebbero una "relazione diretta". In questo caso dovrebbero essere esattamente uguali. Cioè, sono stati letti i dati direttamente dal file, che non è. Da qui il problema. – matt3141
@ matt3141 per prima cosa sono d'accordo che la tua risposta sia quella giusta. Ma il file non è solo letto in memoria qui, viene letto ed elaborato. Quindi la relazione con lo storage di file non è 'diretta'. –