2012-10-19 11 views
5

Jak mogę uzyskać adres URL z UIImage? Mam obraz z biblioteki iPhone'a i zmieniam jego rozmiar i nie chcę zapisywać nowego obrazu, ale chcę uzyskać jego adres URL.Jak uzyskać adres URL z UIImage

+0

Prawdopodobnie będziesz musiał rozwinąć nieco, co chcesz, Czy chcesz poprosić o nową ścieżkę do obrazu, starą ścieżkę do obrazu lub coś innego. Jedynym adresem URL, który może być powiązany z UIImage, jest adres URL systemu plików, który wskazuje, gdzie znajduje się na dysku. – Bergasms

+0

Chcę URL nowego obrazu –

Odpowiedz

6

UIImage nie ma adresu URL ani informacji o pliku. To tylko zbiór bajtów reprezentujących dane koloru piksela. Jeśli otrzymasz UIImage z UIImagePicker, możesz uzyskać adres URL oryginalnego obrazu w bibliotece zasobów. Musisz jednak uzyskać ten adres URL w metodzie delegata obrazów i musisz go śledzić oddzielnie od obiektu UIImage.

Edycja - w oparciu o komentarz PO, nie jest to informacja, której dotyczy wniosek.

+1

, więc jeśli chcę uzyskać adres URL, to muszę go gdzieś zapisać, a następnie mogę uzyskać adres URL? –

+0

Twoje pytanie jest nadal dość niejasne. Mówisz o adresie URL do obrazu, który został poddany edycji lub zmianie. Jeśli robisz to tylko z UIImage, nie ma adresu URL do tego nowego obrazu. Masz tylko obraz w pamięci. – rmaddy

+0

Jeśli obrazek istnieje, musi istnieć jakaś ścieżka do niego, a więc adres URL .. –

4

To, czego szukasz, to parametr UIImagePickerControllerReferenceURL dostarczany przez wywołanie zwrotne uczestnika w słowniku informacyjnym. Co trzeba zrobić, to:

NSURL* imageURL = [info objectForKey:UIImagePickerControllerReferenceURL]; 

I to wyglądać mniej więcej tak:

assets-library://asset/asset.JPG?id=SOME_GUUID&ext=JPG 

Można użyć tego ostatniego odesłać do tego samego obrazu, który dostał w UIImage* w zwrotnego.

0

Można podklasować UIImage i utworzyć przesłonięcie initWithURL: aby zapisać adres URL do utworzonej właściwości ... coś w tym stylu.

+ (id) initWithURL:(NSURL*)url 
{ 
    [super initWithURL:url]; 
    self.url = url; 
} 
9

Mówisz, że nie chcesz go zapisać, ale jeśli trzeba URL dla UIImage, można łatwo zapisać kopię temp aby uzyskać adres URL, które potrzebujesz.

// 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 { } 

Teraz możesz użyć adresu URL, aby udostępnić obraz w mediach społecznościowych lub cokolwiek z nim zrobić.

Więcej informacji na stronie here.

+1

ŻYCIE SAVER !!!!! – Pentarex

Powiązane problemy