首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Konva.Image模拟背景位置行为?

如何用Konva.Image模拟背景位置行为?
EN

Stack Overflow用户
提问于 2021-04-01 10:00:29
回答 2查看 98关注 0票数 1

我有大约50张图片需要加载,然后我才能展示我的舞台。我想减少请求的数量,加载一个包含我所需要的所有图像的大sprite,然后在任何地方使用它,但偏移量是正确的。就像我们在CSS中使用背景位置属性一样。

在文档里还没有找到任何关于它的东西--这可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-02 14:09:04

对于该用例,可以使用作物属性

对于每个Konva.Image实例,只使用一个源映像元素。

代码语言:javascript
运行
复制
const img = new Image();
img.onload = () => {
  const part1 = new Konva.Image({
    image: img,
    cropX: 0,
    cropY: 0,
    cropWidth: img.width / 2
    cropHeight: img.height
  });
  layer.add(part1);
  const part2 = new Konva.Image({
    image: img,
    cropX: img.width / 2,
    cropY: 0,
    cropWidth: img.width / 2
    cropHeight: img.height
  });
  layer.add(part2);
  layer.batchDraw();
}
img.src = url;
票数 2
EN

Stack Overflow用户

发布于 2021-04-01 15:30:05

您可以将sprites映像作为单个JS图像对象加载,然后将其分配给所需的每个Konva图像对象,将每个Konva映像添加到自己的组中,以便使用组clipFunc对图像中不需要的部分进行裁剪。你必须将图像的x&y移动到图像中精灵的x&y的负值,才能得到你需要的目标精灵。

工作示例这里。这个例子只是将一个地图图像分割成偶数块,但要点就在那里。下面的示例图片显示了从单个地图图像中获取的瓷砖。由谷歌地图提供的地图显示了Pigcasso,艺术家猪的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66902435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档