Перейти к содержанию
Fire Monkey от А до Я
  • 0

[iOS] Как сохранить Bitmap в Фотоальбом?


xenon54

Вопрос

Рекомендуемые сообщения

  • 0

Примерно так
 

uses
  System.IOUtils;

var
  b: TBitmap;
begin
   b.SaveToFile( TPath.GetPicturesPath + PathDelim + '1.bmp' );
end;

Правда не уверен на счет пути, может другой надо подставить (GetPublicPath, GetDocumentsPath). Поэкспериментируйте...

Ссылка на комментарий
  • 0
  • Администраторы

Первый способ

 

Сохранить можно через библиотеку AssetsLibrary

uses
  iOSapi.AssetsLibrary, FMX.Helpers.iOS;

procedure SaveToAlbum(const ASourceBitmap: TBitmap);
var
  AssetsLibrary: ALAssetsLibrary;
  Image: UIImage;
begin
  Image := BitmapToUIImage(ASourceBitmap);
  AssetsLibrary := TALAssetsLibrary.Create;
  try
    AssetsLibrary.writeImageToSavedPhotosAlbum(Image.CGImage, Image.imageOrientation, PerformResultOfSavingPhoto);
  finally
    AssetsLibrary.release;
  end;
end;

Второй способ

 

Через UIImageWriteToSavedPhotosAlbum:

 

В декларации этой функции в делфи допущена ошибка, поэтому ниже привожу исправленную декларацию:

uses
  iOSapi.UIKit, MacApi.ObjectiveC, Macapi.ObjCRuntime;

// ===== External functions =====
const
  libUIKit = '/System/Library/Frameworks/UIKit.framework/UIKit';

procedure UIImageWriteToSavedPhotosAlbum(image: Pointer; completionTarget: Pointer; completionSelector: SEL;
  contextInfo: Pointer); cdecl; external libUIKit name _PU + 'UIImageWriteToSavedPhotosAlbum';

procedure SavePhotoToAlbum(const ABitmap: TBitmap);
var
  AssetsLibrary: ALAssetsLibrary;
  Image: UIImage;
begin
  Image := BitmapToUIImage(ABitmap);
  UIImageWriteToSavedPhotosAlbum((Image as ILocalObject).GetObjectID, nil, nil, nil);
end;
Изменено пользователем Brovin Yaroslav
Ссылка на комментарий
  • 0
  • Администраторы

В XE8 был добавлен сервис для сохранения изображения в системную галерею для iOS и Android. Сервис FMX.MediaLibrary:

  /// <summary>Saves image to System Photos Album</summary>
  IFMXPhotoLibrary = interface
    ['{D10DE62A-7398-4BC6-AA4C-AF5F4382BC46}']
    /// <summary>Adds specified image to photo album</summary>
    procedure AddImageToSavedPhotosAlbum(const ABitmap: TBitmap);
  end;
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...