PDA

Visualizza la versione completa : [OBJECTIVE-C] Ottenere informazioni su una immagine caricata in ImageView


francescocorr
22-05-2012, 22:15
Salve, sto sviluppando una piccola applicazione la quale utilizza le immagini dell'album fotografico.

Adesso prese queste immagini e caricate in una imageview (fino a qui tutto ok) vorrei catturare le info dell'immagine e quindi immagazzinarle per poi poterle richiamare in seguito.
Le info che mi servono sono sicuramente il nome e la path locale.
Purtroppo non ho trovato molto in giro.
Qualcuno mi indica qualche risorsa o il codice per poter fare questo?

Grazie

Who am I
22-05-2012, 22:26
Se tu devi visualizzare un' immagine la prima cosa che sai è il nome del file ed il suo path.

francescocorr
23-05-2012, 17:41
Scusami forse mi sono espresso male.
cerco di sintetizzarti il processo dell'applicazione.

Ho una view con 2 tasti uno scatta l'immagine e quindi la mette in una imageview e l'altro la preleva dal photoalbum e la mette sempre nell'imageview.

Adesso io sia nel primo che nel secondo caso vorrei capire come accedere al nome dell'immagine ed al suo percorso locale.

Ho qualcosa del genere.



- (void)photoAlbum:(id)sender{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
[picker setDelegate:self];
[picker setAllowsEditing:YES];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:(YES)];
[picker release];
}


Da qui poi prelevo l'immagine dall'album e la carico nell'imageview.

Spero di essermi spiegato meglio.

Caiodark
24-05-2012, 13:19
Da quanto ho capito le immagini nell'album non hanno un vero e proprio path, stanno nell'album. Punto. L'immagine è talmente astratta dal concetto di file che non so nemmeno in che formato le salvi, probabilmente è proprietario.

francescocorr
24-05-2012, 16:51
Capito, però credo che un modo deve esserci. La mia idea è quella di prendere una immagine oppure far scattare un'immagine all'utente, una volta presa l'immagine, voglio associare a questa immagine un evento. Tipo:
scatto l'immagine
clicco sul tasto aggiungi descrizione
da qui vado in una view con dei campi descrizione dove inserisco
Compleanno di frank
data
ecc ecc.
Una volta riempito i campi vado ad immagazzinare queste info all'interno di un db.
Dopo vado a prendere questi dati e creo una lista di eventi... Logicamente la foto deve essere associata all'evento quindi devo conoscere un path ed un nome per poterla riprendere :(
Su devapp c'è la prima parte descritta, quella della creazione dell'imageview che preleva l'immagine.

Esempio (http://www.devapp.it/wordpress/t007-sfruttiamo-la-fotocamera-delliphone.html)

Se avete qualche consiglio,
Grazie
Frank

Caiodark
25-05-2012, 09:17
Da quanto ho capito stai cercando di realizzare una sorta di Iphoto per Ipad/Iphone.
Il fatto è questo, le foto nel rullino sono salvate in un archivio Photo Library, una solta di database di immagini. Quindi non hanno un path fisico ma solo logico.
Le foto devono essere visibili dal rullino di Ipad/Iphone? Suppongo di no perché altrimenti un utente potrebbe cancellare una foto dal suo rullino e la tua applicazione punterebbe comunque ad una foto inesistente.
Se questo per te non è un problema allora puoi solo recuperare il path logico dal rullino, guarda cosa ti possono offrire le api.
Se invece vuoi che sia la tua app a gestire scatti e collezioni la cosa si risolve facendo sì che sia la tua app a salvare le foto nella cartella documenti associata, così avresti un file fisico della foto (anche se devi scegliere se salvarle come png o jpeg) e il relativo path.

Potresti anche avere una soluzione mista, dove ti salvi solo delle copie delle immagini che l'utente vuole associare ad un evento. In questo caso una volta che hai caricato l'immagine nella imageview (mi pare che questo tu l'abbia già fatto) puoi estrarre l'immagine, convertirla in png o jpg e salvarla nella tua cartella documenti.



UIImage *image = _imageView.image;
NSDateFormatter *nsd = [[NSDateFormatter alloc] init];
nsd.dateFormat = @"dd_MM_YYYY_HH_mm";

NSString *imageName = [NSString stringWithFormat:@"id_%@.jpg", [nsd stringFromDate:[NSDate date]]];

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDire ctory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:imageName];
NSData *data = UIImageJPEGRepresentation(image, 89);
[data writeToFile:folderPath atomically:YES];

francescocorr
02-07-2012, 10:35
Ciao, volevo solo segnalare che ho usato il codice da te segnalato e funziona perfettamente.
Sono riuscito nel mio intento.

Scusa per il ritardo ma avevo abbandonato un attimo la cosa per altri impegni.

Grazie per l'aiuto.
A presto

Loading