首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像保存到全息透镜应用程序中的Photos文件夹中

将图像保存到全息透镜应用程序中的Photos文件夹中
EN

Stack Overflow用户
提问于 2017-02-22 16:02:28
回答 1查看 2.9K关注 0票数 4

我正试图在我的全息镜头应用程序中拍摄一张照片。它似乎在工作,但将图像保存到一个我无法访问或查看的模糊地方。我想把它保存到我的图片库在这里我想。或者我应该把图像保存在哪里,这样我才能在全息镜头上的照片中看到它。

C:/Data/Users/JanikJoe/AppData/Local/Packages/HoloToolkit-Unity_pzq3xp76mxafg/LocalState\CapturedImage10.02831_n.jpg = filePath

C:/Data/Users/DefaultAccount/AppData/Local/DevelopmentFiles/HoloToolkit-UnityVS.Debug_x86.janik/Data\CapturedImage10.02831_n.jpg = filePath2

代码语言:javascript
复制
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");
    }
}


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-23 15:43:45

这似乎是不可能直接保存在相机卷文件夹和没有图片库的HoloLens。

这里有同样的问题:https://forums.hololens.com/discussion/1458/capturing-photo-in-unity-and-saving-to-disk

我试过了解决办法,效果很好。只需将保存的图像移动到相机滚动文件夹。

代码语言:javascript
复制
#if !UNITY_EDITOR && UNITY_WINRT_10_0
        var cameraRollFolder = Windows.Storage.KnownFolders.CameraRoll.Path;            
        File.Move(_filePath, Path.Combine(cameraRollFolder, _filename));
#endif
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42396489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档