更改不平铺的样式

This commit is contained in:
李志鹏
2026-01-08 15:25:15 +08:00
parent 9d41602320
commit 5bbc71654a
4 changed files with 118 additions and 150 deletions

View File

@@ -63,9 +63,10 @@ export async function restoreFabricObject(serializedObject, canvas) {
* 获取对象黑白通道画布
* @param {fabric.Object} object - 要处理的 fabric 对象
* @param {ImageData} revData - 相反的ImageData白通道的相同位置是否为透明revData为白色为透明黑色为不透明
* @param {number} diff - 差值,默认 25
* @returns {HTMLCanvasElement|null} 包含黑白通道的画布,或 null 如果失败
*/
export function getObjectAlphaToCanvas(object, revData) {
export function getObjectAlphaToCanvas(object, revData, diff = 30) {
const image = object.getElement();
const { width, height } = image;
if (!width || !height) {
@@ -88,7 +89,7 @@ export function getObjectAlphaToCanvas(object, revData) {
const revB = revData?.data[i + 2] || 0;
const revA = revData?.data[i + 3] || 0;
if (r || g || b || a) {
if (revR || revG || revB || revA) {
if (revR > diff || revG > diff || revB > diff || revA > diff) {
data.data[i + 0] = 0;
data.data[i + 1] = 0;
data.data[i + 2] = 0;