Amigos, estoy pruebas con una aplicación sencilla donde debo tomar fotos con la cámara del equipo y guardarlo en una carpeta y nombre personalizada dentro de DCIM, el caso es que no aparecen en la galería, sí se guardan correctamente, ésto es lo que tengo:
Aquí tomo la foto y la asigno en un TImage
procedure TFTakePicture.btnCameraClick(Sender: TObject); var Service: IFMXCameraService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then begin Service.TakePhoto(btnCamera, TSize.Create(3600,3600), True, DoDidFinish, nil); end else ShowMessage('Éste dispositivo no soporto el servicio de cámara'); end;
Aquí guardo la imagen a partir del TImage en formato JPG
procedure TFTakePicture.SpeedButton1Click(Sender: TObject); var aSplittedText: TStringList; aPath,aCameraPath: String; aFile: String; begin aSplittedText := TStringList.Create; try aSplittedText.StrictDelimiter := True; aSplittedText.Delimiter := '-'; aSplittedText.DelimitedText := aFicha; aFile := trim(aSplittedText.Strings[0] + '-' + aSplittedText.Strings[1]) + '_' + FormatDateTime('yyyymmdd_hhmmss',now) + '.jpg'; aCameraPath := TPath.GetSharedCameraPath + PathDelim + 'SisVEMCamera'; if not TDirectory.Exists(aCameraPath) then TDirectory.CreateDirectory(aCameraPath); aPath := TPath.Combine(aCameraPath,aFile); try Image1.Bitmap.SaveToFile(aPath); ShowMessage('¡Imagen Guardada!'); except ShowMessage('¡Ocurrió un problema al intentar guardar la imagen!') end; finally aSplittedText.Free end; end;
Las imágenes se guardan correctamente en la carpeta SisVEMCamera dentro de la Carpeta DCIM, ¿Estoy obviando algo ó hay que hacerle un tratamiento adicional a esas imágenes?.
Estuve viendo la interface IFMXPhotoLibrary y el método AddImageToSavedPhotosAlbum pero no me sirve, porque no puedo renombrar la imagen como quisiera.
¿Sugerencias?
Saludos.