Похоже, вам необходимо проверить PhotoCapabilities вашего ImageCapture, прежде чем вы сможете использовать параметр photoSettings в ImageCapture.takePhoto (photoSettings) . [1111 ]
Для этого вам необходимо вызвать метод getPhotoCapabilities()
вашего ImageCapture , а затем проверить диапазоны, установленные как imageHeight
и imageWidth
.
const capture = new ImageCapture(track);
const { imageWidth, imageHeight } = await capture.getPhotoCapabilities();
const width = setInRange(required_width, imageWidth);
const height = setInRange(required_height, imageHeight);
const photoSettings = (width && height) ? {
imageWidth: width,
imageHeight: height
} : null;
const pic = await capture.takePhoto(photoSettings);
function setInRange(value, range) {
if(!range) return NaN;
let x = Math.min(range.max, Math.max(range.min, value));
x = Math.round(x / range.step) * range.step; // take `step` into account
return x;
}
https://jsfiddle.net/bLrvyet5/
Но может случиться так, что требуемая ширина и высота не указаны в этих MediaSettingsRange ] и, таким образом, вам, возможно, придется самостоятельно изменить размер этого изображения на холсте.
HttpServerUtility.UrlEncode
будет использовать HttpUtility.UrlEncode
внутренне. Нет никаких конкретных различий. Причиной существования Server.UrlEncode
является совместимость с классическим ASP.
Следует иметь в виду, что Вы, вероятно, не должны использовать ни один из тех методов. Microsoft Антиперекрестная Библиотека Сценариев Сайта включает замены для HttpUtility.UrlEncode
и HttpUtility.HtmlEncode
, которые и более совместимы стандартами, и более безопасны. В качестве награды Вы добираетесь JavaScriptEncode
метод также.
Сервер. UrlEncode () там для предоставления обратной совместимости Классический ASP,
Server.UrlEncode(str);
эквивалентно:
HttpUtility.UrlEncode(str, Response.ContentEncoding);
То же, Server.UrlEncode()
вызовы HttpUtility.UrlEncode()
Раньше у меня были серьезные проблемы с этими методами, Я рекомендую вам избегать любого варианта UrlEncode
, а вместо этого использовать Uri .EscapeDataString
- по крайней мере, у этого есть понятное поведение.
Посмотрим ...
HttpUtility.UrlEncode(" ") == "+" //breaks ASP.NET when used in paths, non-
//standard, undocumented.
Uri.EscapeUriString("a?b=e") == "a?b=e" // makes sense, but rarely what you
// want, since you still need to
// escape special characters yourself
Но мне больше всего нравится HttpUtility.UrlPathEncode - эта штука действительно непонятна. Он кодирует:
В нем также есть прекрасная документация MSDN «Кодирует часть пути в строке URL-адреса для надежной передачи HTTP от веб-сервера к клиенту». - фактически не объясняя, что он делает. У вас меньше шансов выстрелить себе в ногу из Узи ...
Короче говоря, придерживайтесь Uri.EscapeDataString .