2017-02-22 28 views
2

ホロレンスアプリ内で写真をキャプチャしようとしています。それは動作しているようだが、私はアクセスできないか、または見えない曖昧な場所に画像を保存する。私は写真ライブラリDescribed here I thinkに保存したいと思います。または私はホロレンの写真でそれを見ることができるようにイメージを保存する必要があります。フォトフォルダに画像を保存するホロレンズアプリ

filePathに= C:/データ/ユーザ/ JanikJoe /のAppData /ローカル/パッケージ/ HoloToolkit-Unity_pzq3xp76mxafg/LocalState \ CapturedImage10.02831_n.jpg

filePath2 = C:/データ/ユーザ/ DefaultAccount /のAppData /ローカル/DevelopmentFiles/HoloToolkit-UnityVS.Debug_x86.janik/Data\CapturedImage10.02831_n.jpg

using UnityEngine; 
using UnityEngine.VR.WSA.WebCam; 
using System.Linq; 

public class PhotoCaptureFVTC : MonoBehaviour { 

UnityEngine.VR.WSA.WebCam.PhotoCapture photoCaptureObject = null; 
// Use this for initialization 
void Start() 
{ 
    Debug.Log("snap pic taken"); 
    PhotoCapture.CreateAsync(false, OnPhotoCaptureCreated); 
} 

public void OnPhotoCaptureCreated(PhotoCapture captureObject) 
{ 
    photoCaptureObject = captureObject; 

    //Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); 
    Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); 

    CameraParameters c = new CameraParameters(); 
    c.hologramOpacity = 0.0f; 
    c.cameraResolutionWidth = cameraResolution.width; 
    c.cameraResolutionHeight = cameraResolution.height; 
    c.pixelFormat = CapturePixelFormat.BGRA32; 

    captureObject.StartPhotoModeAsync(c, false, OnPhotoModeStarted); 
} 
void OnStoppedPhotoMode(PhotoCapture.PhotoCaptureResult result) 
{ 
    photoCaptureObject.Dispose(); 
    photoCaptureObject = null; 
} 

private void OnPhotoModeStarted(PhotoCapture.PhotoCaptureResult result) 
{ 
    if (result.success) 
    { 
     string filename = string.Format(@"CapturedImage{0}_n.jpg", Time.time); 
     string filePath = System.IO.Path.Combine(Application.persistentDataPath, filename); 
     string filePath2 = System.IO.Path.Combine(Application.dataPath, filename); 

     photoCaptureObject.TakePhotoAsync(filePath, PhotoCaptureFileOutputFormat.JPG, OnCapturedPhotoToDisk); 
     Debug.LogError("Saved That Image Somewhere" +"FileName: ="+ filename + " FilePath: = " + filePath + " FilePath2: = " + filePath2); 
    } 
    else 
    { 
     Debug.LogError("Unable to start photo mode!"); 
    } 
} 
void OnCapturedPhotoToDisk(PhotoCapture.PhotoCaptureResult result) 
{ 
    if (result.success) 
    { 
     Debug.Log("Saved Photo to disk!"); 
     photoCaptureObject.StopPhotoModeAsync(OnStoppedPhotoMode); 
    } 
    else 
    { 
     Debug.Log("Failed to save Photo to disk"); 
    } 
} 


} 

答えて

3

カメラロールフォルダに直接保存することはできませんとに何の画像ライブラリが存在しないということのようですHoloLens。

あり、ここで同じ質問です:https://forums.hololens.com/discussion/1458/capturing-photo-in-unity-and-saving-to-disk

私は回避策を試してみましたが、それが正常に動作します。保存した画像をカメラロールフォルダに移動するだけです。

#if !UNITY_EDITOR && UNITY_WINRT_10_0 
     var cameraRollFolder = Windows.Storage.KnownFolders.CameraRoll.Path;    
     File.Move(_filePath, Path.Combine(cameraRollFolder, _filename)); 
#endif