【问题标题】:How to increase camera capture quality in Win8 metro app VS2012如何在 Win8 Metro 应用程序 VS2012 中提高相机拍摄质量
【发布时间】:2013-11-28 19:00:27
【问题描述】:

我正在为 Windows 8 开发一个从 webCamera 拍摄照片的应用程序,当前质量(.jpg 或 .png)是

  • 高宽:640X480
  • 分辨率:96ppp
  • 位深:24Bits

function takePhoto() {
    //if a file with the same name exist, creates another with a number at the end
    pics.createFileAsync("photo.jpg", Storage.CreationCollisionOption.generateUniqueName)
      .then(function (file) {   
          var photoProperties = Windows.Media.MediaProperties.ImageEncodingProperties.createJpeg();
          var photoProperties = Windows.Media.MediaProperties.ImageEncodingProperties.createPng();

          mediaCapture.capturePhotoToStorageFileAsync(photoProperties, file).then(function () {
              console.log("Image saved on disk. ");

              var thumbnailUrl = URL.createObjectURL(file, { oneTimeOnly: true });

              previewSlide(thumbnailUrl);
          });
      });
}

如果我将当前的截图与原生相机的截图进行比较,原生相机的应用程序的质量是优越的,我想得到与原生相机相同的结果,或者如果不可能,我想提高图片质量,如何实现?

提前致谢


编辑:图片试图解析MediaStreamType


相机初始化函数:

function startCamera() {
        mediaCapture = new Capture.MediaCapture();

        mediaCapture.initializeAsync().then(function () {

            var iVectorView = mediaCapture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.photo);

            for (var i = 0; i < iVectorView.length; i++) {
                console.log("elemento " + i + ":" + iVectorView[i]);
            }



            mediaCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(iVectorView[], properties);
            mediaCapture.videoDeviceController.setm


            livePreview.src = URL.createObjectURL(mediaCapture);
            livePreview.play();
        });

        livePreview.addEventListener("pause", handlePause);
    }

【问题讨论】:

    标签: visual-studio-2012 camera windows-8.1


    【解决方案1】:

    这就是我在定格动画应用程序中的做法,Zoetrope

    1. 致电mediaCapture.VideoDeviceController.GetAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.Photo) 以获取所有可用的照片配置文件并将结果投射到VideoEncodingProperties
    2. 返回的每个流属性都将具有宽度、高度和颜色深度等属性 - 选择适合您的用例的属性。
    3. 致电mediaCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, properties) with the VideoEncodingProperties that you want to use.

    【讨论】:

    • 我添加了第一行但它说MediaStreamType未定义,MediaStreamType是什么类型的变量或对象?
    • 耶稣,在 Visual Studio 中,右键单击 MediaStreamType 并选择 Resolve...using Window.Media.Capture,正确的 using 语句将添加到您的文件中。
    • 我寻找“解决”选项,但没有找到该选项我需要做什么,我的问题中的图片,我只是将“MediaStreamType.Photo”替换为“Windows.Media.Capture” .MediaStreamType.Photo" 将把函数放在我初始化相机的地方
    • 我以为您在使用 C# - 在 JS 中您需要使用整个类型名称或预先将其定义为 var,如下所示:var MediaStreamType=Windows.Media.Capture.MediaStreamType;
    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2017-07-14
    • 2018-03-22
    • 2019-04-16
    相关资源
    最近更新 更多