2013-08-28 5 views
1

libGDX 게임에서 이미지를 내보내고 iPad의 기본 포토 앱에 표시해야합니다.libGDX의 iOS 갤러리에 이미지 저장

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(); 

을하지만 스크린 샷은 아무데도 나타나지 않습니다

현재,이 같은 해. 포토 앱에 표시하려면 어떻게해야하나요?

답변

0

먼저 로거를 추가하여 파일 추가 위치를 확인하십시오.

로컬에 넣어 경우 :

로컬 파일이 데스크톱 응용 프로그램의 루트 또는 작업 디렉토리에 상대적으로 안드로이드에 대한 응용 프로그램의 내부 (개인) 스토리지를 기준으로 저장됩니다. 로컬 및 내부는 대부분 데스크톱에서 동일합니다.

외부

외부 파일 경로가 안드로이드 및 데스크톱 시스템에 현재 사용자의 홈 디렉토리에 SD 카드 루트에 상대적인 경우.

refare FileHandling libGDX wiki

그래서 난 당신이 실 거예요 아이폰 OS에서 찾을 이유를 지역 그게 전부에 저장 같아요. 그렇지 않으면 그림 폴더에 대한 올바른 경로를 만들어야합니다. 다른 앱을 설치할 폴더와 동일한 폴더에 저장하면됩니다. 하지만 난 당신이 파일 핸들 absolut verion을 사용해야한다고 생각합니다. 그렇지 않으면 완전히 다른 경로로 무언가를 저장할 수 있습니다. 이 경우

는 "MYFILE.TXT는"사용자의 홈 디렉토리에 바탕 화면에 (리눅스 또는 윈도우와 맥 OS에서 \ 사용자 \\ MYFILE.TXT에 /home//myfile.txt) 할 필요가, Android의 SD 카드의 뿌리에 있습니다. 나는 그런 경우에 뭐하는 거지

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

고맙습니다. 내일 다시 시도하겠습니다. 포토 앱이 올바른 디렉토리에 이미지를 놓으면 자동으로 이미지를 감지합니까, 아니면 사진에 대해 다른 마술을해야합니까? –

+0

확실하지는 않지만 자동으로 알 수 있다고 생각합니다. 그 외 모든 것은 이상 할 것입니다 – BennX

2

은 다음과 같습니다

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()); 
     } 
    }); 
} 

나는 당신을 도움이되기를 바랍니다. :)

+0

도와 줘서 고마워! – XdebugX

관련 문제