javascript - Fabricjs用白色裁剪/替换部分背景图像
问题描述
我需要将图像加载为画布,将其切成两半,然后用白色背景颜色替换剪切部分。
有4种可能:
*(黄色=剩余图像,白色=白色背景)
前两种可能性:图像被垂直切割,我们保留图像的左侧部分 或右侧部分(在上图中切换白色和黄色)。另一部分变成白色背景。
其他两种可能性:图像被水平切割,我们保留图像的顶部或底部( 在上图中切换白色和黄色)。另一部分变成白色背景。
我试过的:
fabric.Image.fromURL(imageUrl, img => {
this.canvas.setBackgroundImage(img, this.canvas.renderAll.bind(this.canvas), {
left: img.getScaledWidth()/2,
originX: 'left'
});
this.canvas.setWidth(img.getScaledWidth());
this.canvas.setHeight(img.getScaledHeight());
this.canvas.renderAll();
}, { crossOrigin: 'Anonymous' });
两个问题:
- 剩余图像在错误的一侧
- 另一部分是透明的而不是白色背景
是否有可能使用 Fabricjs 实现这一目标?(否则我该怎么办?)
解决方案
我认为您可以为此使用一组画布元素。我创建了一个示例,您可以在此处查看
https://codesandbox.io/s/mystifying-curran-bkwtk?file=/src/index.js
推荐阅读
- c - 小端环境中 C 中的 SHA-1
- javascript - 将 Array.prototype.sort() 与比较函数一起使用时的排序算法是什么
- angular - 使用 patchValue 方法更新表单值时,表单变脏了?
- php - 将数据库数据放入 html 表中
- firebase - TypeError:无法在firebase云函数中读取空busboy的属性“文件”
- php - 想要使用字段中的输入提交数据并按“Enter”但不使用任何按钮(数据正在通过 ajax)
- android - 未定义不是对象(评估'this.props.navigation.navigate')反应原生
- java - java和php的加密结果不一样
- sql - postgresql 合并 2 个不相关的表
- javascript - 两个箭头函数有什么区别?