【问题标题】:Save image to iOS Gallery from libGDX从 libGDX 将图像保存到 iOS 图库
【发布时间】:2013-08-28 09:23:49
【问题描述】:

我需要从 libGDX 游戏中导出图像,并使其显示在 iPad 上的默认照片应用程序中。

目前,我是这样做的:

Pixmap image = getScreenshot();

FileHandle file;
String filename = "diplom_" + game.player.getID() + ".png";

if(Gdx.files.isExternalStorageAvailable())
    file = Gdx.files.external(filename);
else
    file = Gdx.files.local(filename);

PixmapIO.writePNG(file, image);
pixmap.dispose();

但是屏幕截图没有出现在任何地方。如何让它出现在照片应用中?

【问题讨论】:

    标签: java ios screenshot libgdx


    【解决方案1】:

    在这种情况下我正在做的是:

    private NSData getImageAsNsData(Pixmap pixmap) {
        FileHandle file = Gdx.files.local("tmpImage.png");
        PixmapIO.writePNG(file, pixmap);
        NSData imageData = NSData.read(file.file());
        file.delete();
        return imageData;
    }
    
    public void sendToGallery(Pixmap pixmap) {
        NSData imageData = getImageAsNsData(pixmap);
        uiImage = new UIImage(imageData);
        uiImage.saveToPhotosAlbum(new VoidBlock2<UIImage, NSError>() {
            @Override
            public void invoke(UIImage uiImage, NSError nsError) {
                if (nsError!=null)
                    Gdx.app.log("Error", "Unable to save: " + nsError.getLocalizedDescription());
            }
        });
    }
    

    希望对你有帮助。 :)

    【讨论】:

      【解决方案2】:

      首先尝试添加记录器,以便查看添加文件的位置。

      如果你把它放在本地:

      本地文件的存储相对于桌面上应用程序的根目录或工作目录,以及相对于 Android 上应用程序的内部(私有)存储空间。请注意,本地和内部在桌面上几乎相同。

      如果是外部的

      外部文件路径相对于 Android 上的 SD 卡根目录和桌面系统上当前用户的主目录

      转至FileHandling libGDX wiki

      所以我猜你将它保存在本地,这就是你在 iOS 中找不到它的原因。否则,您需要创建图片文件夹的正确路径。否则,您只需将其保存在安装应用程序的同一文件夹中。但我认为你需要使用文件句柄的absolut 版本。否则,您可以以完全不同的路径保存某些内容。

      在这种情况下,“myfile.txt”需要在桌面上的用户主目录(Linux 上的 /home//myfile.txt 或 Windows 和 MacOS 上的 \Users\\myfile.txt)中,并且在Android 上 SD 卡的根目录。

      FileHandle handle = Gdx.files.absolute("/some_dir/subdir/myfile.txt");
      

      【讨论】:

      • 谢谢,我明天试试。一旦我将图像放在正确的目录中,照片应用程序会自动检测到它,还是我必须做一些其他的魔法来告诉照片?
      • 我不确定,但我认为它会自动识别。其他一切都会很奇怪
      猜你喜欢
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多