为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不泄漏帧的情况下渲染帧图像内的屏幕截图/图像?

如何在不泄漏帧的情况下渲染帧图像内的屏幕截图/图像?

ITMISS 2021-05-06 10:38:10
使用div或canvas的目标是用图像/屏幕截图完全填充设备框架,但又不会溢出框架。屏幕截图1展示了紧贴框架内的图像。屏幕截图2说明了图像渗漏到框架之外的情况。第一个挑战是图像/屏幕截图的宽高比可能会有所不同,即可能会使用不同尺寸的图像。例如,一个图像可能是1242x2688,而另一图像可能是1440x2960。无论宽高比如何,屏幕截图都应填充框架,但不会流过其边缘。第二个挑战是它们通常在CSS中的缩放比例transform: scale(x)约为25%,浏览器的舍入行为在此比例下会产生像素大小的间隙。但是,当比例恢复到100%时,这些差距将消失。我们尝试了两种选择。两者都有缺陷。两者都使图像/屏幕截图成为帧div的子div。选项1:填充值我们使用“ padding”值来调整子div的宽度,高度和位置(即屏幕截图),以使其适合其父框架(框架)。但是,具有不同宽高比的图像可能会渗漏到框架之外或无法填满框架。选项2:剪切路径我们使用剪切路径来表示框架内的区域,但有时会出现间隙,具体取决于CSS缩放值。我们不能允许差距。差距问题在下面的代码和Codepen中进行了说明。还有其他选择吗?Codepen(说明差距):https ://codepen.io/anon/pen/yWXvJE.colorClassProxy {  display: none}.itemBox, .itemBox > * {    position: absolute;    box-sizing: border-box;}.backgroundColorBox, .backgroundGraphicBox, .foregroundBox, .frameBox {    width: 100%;    height: 100%;    background-size: contain;    background-color: transparent;    background-position: center;    background-repeat: no-repeat;    pointer-events: none;}<div class="itemBox graphic" id="NZW2Hmn4nVgb" style="width: 173px; height: 364px; top: 86px; left: 111px;"><div class="backgroundColorBox" style="width: 163px; height: 335px; top: 17px; left: 4px; -webkit-mask-image: url(&quot;data:image/svg+xml;charset=utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%2241.7%20142.4%201445.2%202965.9%22%20preserveAspectRatio=%22none%22%3E%3Cpath%20d=%22M1359.3,3105.3h-1190c-68.8,0-124.6-53.2-124.6-118.9V264.3c0-65.7,55.8-118.9,124.6-118.9h1190%20%20c68.8,0,124.6,53.3,124.6,118.9l0,2722.1C1484,3052.1,1428.2,3105.4,1359.3,3105.3L1359.3,3105.3z%22%20style=%22fill:%20white;%20stroke:%20white;%20stroke-width:%206;%22/%3E%3C/svg%3E&quot;); background-size: cover;"></div><div class="backgroundGraphicBox" style="width: 163px; height: 335px; top: 17px; left: 4px; -webkit-mask-image: 
查看完整描述

3 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

我认为,最简单的方法是将图像上应用的CSSbackground-image然后使用background-sizecontaincover

缩放背景图片

background-size CSS属性使调整背景图像的宽度和高度成为可能,从而覆盖了默认的行为,即将背景图像按其原始大小进行平铺。您可以根据需要向上或向下缩放图像。


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信