Come posso ottenere un URL da UIImage? Ho un'immagine dalla libreria di iPhone e la ridimensiono e non voglio salvare la nuova immagine ma voglio ottenerla.Come ottenere l'URL da UIImage
risposta
UIImage non ha URL o informazioni sul file. È solo una raccolta di byte che rappresentano i dati dei colori dei pixel. Se si ottiene UIImage da UIImagePicker, è possibile ottenere l'URL dall'immagine originale nella libreria degli asset. Ma devi ottenere questo URL nel metodo di delega di selezione immagini e devi tenerne traccia separatamente dall'oggetto UIImage.
Modifica - in base al commento dell'OP, questa non è l'informazione richiesta.
quindi se voglio ottenere l'url allora devo salvarlo da qualche parte e poi posso ottenere l'url? –
La tua domanda è ancora abbastanza vaga. Stai parlando di un URL di un'immagine che è stata modificata o ridimensionata. Se stai facendo questo con un UIImage, non c'è nessun URL per questa nuova immagine. Hai solo un'immagine in memoria. – rmaddy
Se l'immagine esiste, deve esserci un percorso associato e quindi l'url .. –
Quello che stai cercando è il parametro UIImagePickerControllerReferenceURL
fornito dal callback del delegato nel dizionario delle informazioni. Quello che dovete fare è:
NSURL* imageURL = [info objectForKey:UIImagePickerControllerReferenceURL];
E sarebbe simile a questa:
assets-library://asset/asset.JPG?id=SOME_GUUID&ext=JPG
è possibile utilizzare quest'ultimo per fare riferimento alla stessa immagine che hai nel UIImage*
nella callback.
È possibile creare sottoclasse UIImage e creare un override di initWithURL: per salvare l'URL in una proprietà creata ... qualcosa di simile.
+ (id) initWithURL:(NSURL*)url
{
[super initWithURL:url];
self.url = url;
}
Tu dici che non vuoi salvarlo, ma se avete bisogno di un URL per un UIImage
, si può facilmente salvare una copia temporanea per ottenere l'URL di cui avete bisogno.
// Create a URL in the /tmp directory
guard let imageURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("TempImage.png") else {
return
}
// save image to URL
do {
try UIImagePNGRepresentation(myImage)?.write(to: imageURL)
} catch { }
Ora è possibile utilizzare l'URL per condividere l'immagine sui social media o qualsiasi altra cosa si debba fare con esso.
Vedere here per ulteriori informazioni.
LIFE SAVER !!!!! – Pentarex
Probabilmente dovrai espandere un po 'quello che vuoi, stai chiedendo un nuovo percorso per l'immagine, il vecchio percorso per l'immagine o qualcos'altro. L'unico URL che potrebbe essere associato a una UIImage è un URL del filesystem che punta a dove esiste sul disco. – Bergasms
Voglio l'url della nuova immagine –