2009-03-05 37 views
9

Có thể, trong ứng dụng iPhone, để trích xuất thông tin vị trí (mã địa lý, tôi cho rằng nó được gọi) từ ảnh chụp bằng camera iPhone?iPhone - truy cập thông tin vị trí từ ảnh

Nếu không có lệnh gọi API để thực hiện, có cách nào được biết để phân tích cú pháp byte dữ liệu để trích xuất thông tin không? Một cái gì đó tôi có thể cuộn trên của riêng tôi?

+1

[giải pháp sử dụng Khung ảnh trong ** iOS 8 **] (http://stackoverflow.com/a/33672661/1378447) –

Trả lời

6

Rất tiếc là không.

Vấn đề là như vậy;

Tệp jpeg bao gồm một số phần. Đối với câu hỏi này, những câu hỏi mà chúng tôi quan tâm là dữ liệu hình ảnh và dữ liệu exif. Dữ liệu hình ảnh là hình ảnh và dữ liệu exif là nơi những thứ như mã hóa địa lý, tốc độ cửa trập, loại máy ảnh, v.v ... được lưu trữ.

Một UIImage (và CGImage) chỉ chứa dữ liệu hình ảnh, không có thẻ.

Khi bộ chọn hình ảnh chọn một hình ảnh (hoặc từ thư viện hoặc máy ảnh), nó sẽ trả về một UIImage, chứ không phải một jpeg. UIImage này được tạo từ dữ liệu hình ảnh jpeg, nhưng dữ liệu exif trong jpeg bị loại bỏ.

Điều này có nghĩa là dữ liệu này không có trong UII và không thể truy cập được.

+0

Có cách nào để phân tích cú pháp byte dữ liệu để trích xuất thông tin không? Có lẽ không phải là một cuộc gọi API, nhưng một cái gì đó tôi có thể cuộn trên của riêng tôi? – bpapa

+0

Sợ không, tôi đã làm rõ câu trả lời để giải thích tại sao. –

+0

Điều này không đúng. Có thể, vì một số ứng dụng (như Mobile Photos và PixelPipe) dường như có thể quản lý nó. Tôi vẫn chưa tìm thấy bất kỳ mã mẫu nào. – tomtaylor

2

Tôi nghĩ câu trả lời đã chọn là sai, thực sự. Vâng, không sai. Tất cả mọi thứ nó nói là chính xác, nhưng có một cách xung quanh giới hạn đó.

UIImagePickerController chuyển từ điển cùng với UIImage trở lại. Một trong các phím là UIImagePickerControllerMediaURL là "URL hệ thống tệp cho phim". Tuy nhiên, như đã chú thích here trong các phiên bản iOS mới hơn, nó cũng trả về một url cho hình ảnh. Cặp đôi với số exif library được đề cập bởi @Jasper và bạn có thể kéo thẻ địa lý ra khỏi ảnh.

Tôi chưa thử phương pháp này, nhưng như @tomtaylor đã đề cập, điều này có thể bằng cách nào đó, vì có một số ứng dụng thực hiện điều đó. (ví dụ: Lab).

+0

Khi tôi đã thử điều này (iOS 4.2), nó không trả về khóa đó - chỉ UIImagePickerControllerMediaType, UIImagePickerControllerOriginalImage và UIImagePickerControllerReferenceURL, đó là '" asset-library: //asset/asset.jpg? Id = 2317 & ext = jpg "' –

+0

Điều cần biết ... Có lẽ nó chỉ ở đó trong 3.2? –

+0

Tôi rất tò mò về cách một số nhà phát triển đã quản lý để thực hiện điều này ... –

Các vấn đề liên quan