2012-10-19 40 views
5

Tôi làm cách nào để có URL từ UIImage? Tôi đã có một hình ảnh từ thư viện iPhone và tôi thay đổi kích thước nó và tôi không muốn lưu hình ảnh mới nhưng tôi muốn nhận được URL của nó.Cách lấy URL từ UIImage

+0

Có thể bạn sẽ phải mở rộng một chút về những gì bạn muốn, Bạn có yêu cầu một đường dẫn mới cho hình ảnh, đường dẫn cũ cho hình ảnh hay thứ gì đó khác. URL duy nhất có thể được liên kết với UIImage là url hệ thống tệp trỏ đến nơi nó tồn tại trên đĩa. – Bergasms

+0

Tôi muốn url của hình ảnh mới –

Trả lời

6

UIImage không có thông tin URL hoặc tệp. Nó chỉ là một tập hợp các byte đại diện cho dữ liệu màu pixel. Nếu bạn nhận được UIImage từ UIImagePicker thì bạn có thể lấy URL đến hình ảnh gốc trong thư viện nội dung. Nhưng bạn phải lấy URL này trong phương thức ủy nhiệm trình chọn hình ảnh và bạn phải theo dõi nó riêng biệt với đối tượng UIImage.

Chỉnh sửa - dựa trên nhận xét của OP, đây không phải là thông tin được yêu cầu.

+1

vì vậy nếu tôi muốn nhận được url thì tôi phải lưu nó ở đâu đó và sau đó tôi có thể nhận được url? –

+0

Câu hỏi của bạn vẫn còn khá mơ hồ. Bạn đang nói về một URL đến một hình ảnh đã được chỉnh sửa hoặc thay đổi kích thước. Nếu bạn chỉ làm việc này với UIImage, không có URL nào cho hình ảnh mới này. Bạn chỉ có một hình ảnh trong bộ nhớ. – rmaddy

+0

Nếu hình ảnh tồn tại thì phải có một số đường dẫn liên kết với nó và do đó url .. –

4

Điều bạn đang tìm kiếm là thông số UIImagePickerControllerReferenceURL được cung cấp bởi cuộc gọi lại đại biểu trong từ điển thông tin. Những gì bạn cần làm là:

NSURL* imageURL = [info objectForKey:UIImagePickerControllerReferenceURL]; 

Và nó sẽ giống như thế này:

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

Bạn có thể sử dụng sau này để xem lại những hình ảnh mà bạn có trong UIImage* trong callback.

0

Bạn có thể phân lớp UIImage và tạo ghi đè initWithURL: để lưu URL vào thuộc tính được tạo ... một cái gì đó như thế này.

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

Bạn nói rằng bạn không muốn lưu nó, nhưng nếu bạn cần một URL cho một UIImage, bạn có thể dễ dàng lưu một bản sao tạm thời để có được địa chỉ URL mà bạn cần.

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

Giờ đây, bạn có thể sử dụng URL để chia sẻ hình ảnh với phương tiện truyền thông xã hội hoặc bất kỳ điều gì bạn cần làm.

Xem here để biết thêm.

+1

CUỘC SỐNG SAVER !!!!! – Pentarex