【发布时间】:2016-08-16 07:15:29
【问题描述】:
我正在使用一个 API,它需要我以 300 的分辨率捕获 jpeg 图像。
工作流程是:
- 使用视频元素从集成摄像头流式传输。
- “拍摄”视频照片并将其绘制到画布元素上。
- 使用 .toDataURL() 将图像从画布转移到图像标签。
- 将该图像发送到 API 进行验证...
我遇到的问题是我相信画布上绘制的图像取决于它所在的网页/显示器的分辨率。 虽然我可以更改图像的尺寸,但使用 CSS 将两倍大的东西按比例缩小到 look 更高的分辨率; API 一直在回叫我向他们发送的图片质量太低了。
我最终需要使用集成摄像头来捕获和传输分辨率为 300(或更高)的 jpeg,但我无法确定仅使用前端代码是否可行。
感谢您的帮助:)
【问题讨论】:
-
您可以轻松地将
ctx.drawImage(video, 0, 0, 300, 300 / 16 * 9)(假设您的视频是16/9)用于300x(300/16*9)画布。 (数字可以根据您对分辨率的含义进行更改)。视频不取决于您的视频元素大小。 -
你的意思是分辨率实际上就是我的意思/任何视频需要多大的输出?
-
我在决议这个词上跳来跳去,因为我真的没有更好的词可供我使用——DPI 和 PPI 总是转入关于哪些适合与网络讨论的对话,如果有的话。所以,我被要求使用的 API,它做的第一件事是检查图像的元数据,如果那里的分辨率大于或等于 300。我基本上的任务是从相机,然后生成的图像可以保存并在 PhotoShop 中打开,图像分辨率中列出了 300+。
-
我认为现代世界中的分辨率就是视频的大小。下面的答案很不错。缩放视频无论如何都会导致质量损失,您可以在 Photoshop 中进行缩放。以最大分辨率截屏,仅此而已,否则您正在来回移动没有实际用途的数据...
标签: javascript video canvas resolution