Доступ к файлу фотографии

Я использую стандартный TTakePhotoFromCameraAction в своем приложении, чтобы сделать фото.

Что я хотел бы сделать, так это то, что когда пользователь закрывает приложение, а затем снова открывает его, загружается последняя сделанная фотография.

Я знаю, как использовать SharedPreference в delphi, но я не знаю, что это имя файла и путь к самой фотографии!

Любые подсказки?


person Oussama Al Rifai    schedule 30.09.2013    source источник


Ответы (2)


Событие TTakePhotoFromCameraAction.OnDidFinishTaking дает вам Bitmap сделанного снимка. Затем вы несете ответственность за сохранение его там, где и как вам это нужно. TTakePhotoFromCameraAction не сохраняет его для вас.

person Remy Lebeau    schedule 30.09.2013
comment
Тогда как это сохраняется в галерее? Я боюсь, что если я его сохраню, у меня будет 2 файла на носителе. - person Oussama Al Rifai; 30.09.2013
comment
Я не вижу в исходном коде Firemonkey ничего, что сохраняло бы снимок с камеры в галерею. Однако я вижу, что TTakePhotoFromCameraAction вызывает JFMXMediaLibrary.takeImageFromCamera(), а реализация Embarcadero интерфейса JFMXMediaLibrary скрыта внутри класса com.embarcadero.firemonkey.medialibrary.FMXMediaLibrary java, для которого я не вижу исходного кода. Таким образом, возможно, что Embarcadero тайно сохраняет захваченные фотографии в галерею без ведома FireMonkey, но я не могу представить, почему они хотят или должны это делать. - person Remy Lebeau; 01.10.2013
comment
Тем более, что TTakePhotoFromCameraAction предоставляет фотоданные приложению, чтобы решить, что с ними делать. - person Remy Lebeau; 01.10.2013
comment
Может быть, это не Embarcadero JFMXMediaLibrary, который сохраняет его ... может быть, ОС Android ... или апплет производителя камеры. Но опять же, почему в других приложениях картинки сохраняются не в Галерее, а в определенной папке? - person Oussama Al Rifai; 01.10.2013
comment
Не могу ответить на этот вопрос, поскольку мы не видим, как Embarcadero вызывает камеру, будь то напрямую, через намерение или что-то еще. Android предоставляет разные способы доступа к камере, поэтому, возможно, разные API ведут себя по-разному, или, может быть, Embarcadero опускает флаг, который указывает камере игнорировать галерею, или... - person Remy Lebeau; 01.10.2013
comment
Хорошо, я сдаюсь. Я могу справиться с двойной экономией. но я попробовал следующий код, чтобы сохранить растровое изображение в файл: Img.Bitmap.SaveToFile(System.IOUtils.TPath.Combine((System.IOUtils.TPath.GetSharedDownloadsPath, 'abitmap.bmp')); Но он не сохраняет файл!!!Что мне не хватает?????? - person Oussama Al Rifai; 05.10.2013

Существует пример, показывающий, как это сделать с образцами Delphi:

C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\PhotoEditorDemo

person wahm sarab    schedule 10.10.2013