Unity - сохранить скриншот в папку галереи Android - PullRequest
0 голосов
/ 11 октября 2018

Из приложения для единства я пытаюсь сделать снимок экрана и сохранить его в галерее.

ScreenCapture.CaptureScreenshot(Application.dataPath + "SomeLevel.png");

путь к данным приложения указывает на сам файл APK - как я могу перенаправить его нагалерея?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вам нужен плагин для сохранения изображения в галерее.Это относится как к Android, так и к iOS.Android требует обновления галереи после сохранения изображения.Плагин NativeGallery , который является бесплатным и работает как для Android, так и для iOS, можно использовать для этого с функцией NativeGallery.SaveImageToGallery.Вы можете получить это здесь .Это экономит ваше время на создание собственного.

Чтобы сохранить изображение с помощью плагина, вы должны отказаться от функции ScreenCapture.CaptureScreenshot и вручную сделать снимок экрана с помощью функции ReadPixels, преобразовав его вЗатем png или jpeg сохраните байтовый массив с помощью функции NativeGallery.SaveImageToGallery.

IEnumerator TakeAndSaveScreenshot()
{

    yield return new WaitForEndOfFrame();

    Texture2D screenImage = new Texture2D(Screen.width, Screen.height);
    //Get Image from screen
    screenImage.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
    screenImage.Apply();
    //Convert to png
    byte[] imageBytes = screenImage.EncodeToPNG();

    //Save image to gallery
    NativeGallery.SaveImageToGallery(imageBytes, "AlbumName", "ScreenshotName.png", null);
}

Использование :

StartCoroutine(TakeAndSaveScreenshot());
0 голосов
/ 11 октября 2018

попробуйте Application.persistentDataPath, а не путь Application.data

, также просмотрите это

https://answers.unity.com/questions/204372/saving-screenshots-to-android-gallery.html

...