procedure TForm2.FormCreate(Sender: TObject);
begin
TMessageManager.DefaultManager.SubscribeToMessage(TMessageReceivedImagePath, DidReceiveBitmap);
end;
procedure TForm2.TakePhotoFromLibraryAction1DidCancelTaking;
begin
//
end;
procedure TForm2.TakePhotoFromLibraryAction1DidFinishTaking(Image: TBitmap);
begin
Image1.Bitmap := Image;
end;
procedure TForm2.DidReceiveBitmap(
const Sender: TObject;
const M: TMessage);
var
LMessage: TMessageResultNotification;
LImagePath:
String;
begin
if M
is TMessageReceivedImagePath
then
begin
LMessage := TMessageResultNotification(M);
LImagePath := (M
as TMessageReceivedImagePath).Value;
// <--- '/data/user/0/com.embarcadero.Project1/cache/IMG_20190319_[...].jpg'
if LMessage.RequestCode = TJFMXMediaLibrary.JavaClass.ACTION_TAKE_IMAGE_FROM_LIBRARY
then
begin
GetEXIF(LImagePath);
Image2.Bitmap.LoadFromFile(LImagePath);
end;
end;
end;
procedure TForm2.GetEXIF(
const AFileName:
String);
var
LEXIF: JExifInterface;
LLatLong: TJavaArray<Single>;
begin
LEXIF := TJExifInterface.JavaClass.init(StringToJString(AFileName));
Memo1.Lines.Add('
File: ' + AFileName);
LLatLong := TJavaArray<Single>.Create(2);
if LEXIF.getLatLong(LLatLong)
then
begin
Memo1.Lines.Add('
Latitude: ' + LLatLong.Items[0].ToString);
Memo1.Lines.Add('
Longitude: ' + LLatLong.Items[1].ToString);
end;
LLatLong.Free;
end;