[
https://issues.apache.org/jira/browse/CB-8879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14541579#comment-14541579
]
ASF GitHub Bot commented on CB-8879:
------------------------------------
Github user vladimir-kotikov commented on a diff in the pull request:
https://github.com/apache/cordova-plugin-camera/pull/94#discussion_r30210477
--- Diff: src/windows/CameraProxy.js ---
@@ -438,6 +457,61 @@ function takePictureFromCameraWP(successCallback,
errorCallback, args) {
});
};
+ var getAspectRatios = function (capture) {
+ var photoAspectRatios =
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.photo).map(function
(element) {
+ return (element.width / element.height).toFixed(1);
+ }).filter(function (element, index, array) { if (index ===
array.indexOf(element)) return 1; return 0; });
+
+ var videoAspectRatios =
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.videoRecord).map(function
(element) {
+ return (element.width / element.height).toFixed(1);
+ }).filter(function (element, index, array) { if (index ===
array.indexOf(element)) return 1; return 0; });
+
+ var videoPreviewAspectRatios =
capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.videoPreview).map(function
(element) {
+ return (element.width / element.height).toFixed(1);
+ }).filter(function (element, index, array) { if (index ===
array.indexOf(element)) return 1; return 0; });
+
+ var allAspectRatios = [].concat(photoAspectRatios,
videoAspectRatios, videoPreviewAspectRatios);
+
+ var aspectObj = allAspectRatios.reduce(function (map, item) {
+ if (!map[item]) {
+ map[item] = 0;
+ }
+ map[item]++;
+ return map;
+ }, {});
+
+ return Object.keys(aspectObj).filter(function (k) {
+ return aspectObj[k] === 3;
--- End diff --
You are restricting aspect ratios to those which only supported by __all__
capture modes (picture, video and videoPreview). Not sure if it is by intent.
Probably it makes sense to respect __current__ capture mode and return
aspect ratios for this capture mode. Potentially there could be a situation
when device's camera support a different aspect ratios for video and image
capture.
For example video is captured only in 640*480, which is equal to 1.3 aspect
ratio, and for image there could be a number of other aspect ratios). This
logic will return only '1.3' or even an empty set.
> [Windows] Camera picture has black/green stripes that crop image
> ----------------------------------------------------------------
>
> Key: CB-8879
> URL: https://issues.apache.org/jira/browse/CB-8879
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Camera
> Affects Versions: 3.6.0
> Environment: windows
> Reporter: Olivier VERMONT
> Assignee: Murat Sutunc
> Labels: camera, resolution, stripes, windows-phone-81
>
> When a photo is taken with Windows Phone 8.1 device Nokia Lumia 735, the
> picture returned shows black or green stripes on the sides and is out of
> shape. It seems this is related to photo resolution but I can't get it fixed
> in JS.
> It seems to be quite a common problem with the Media Capture API and people
> solved issue in C# here is an illustration :
> http://stackoverflow.com/questions/23709547/captured-photo-with-stripes
> Here is what I tried without success :
> var resolutions =
> capture.videoDeviceController.getAvailableMediaStreamProperties(Windows.Media.Capture.MediaStreamType.photo);
> var maxWidth = 0;
> var maxResolution = null;
> for(var i=0; i<resolutions.length; i++){
> //console.log(resolutions[i].width);
> if(resolutions[i].width > maxResolution){
> maxWidth = resolutions[i].width;
> maxResolution = resolutions[i];
> }
> }
> capture.videoDeviceController.setMediaStreamPropertiesAsync(Windows.Media.Capture.MediaStreamType.photo,
> maxResolution)
> Am I missing something ?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]