更改不平铺的样式
This commit is contained in:
@@ -191,6 +191,7 @@ export function createLayer(options = {}) {
|
||||
generateId("layer_") ||
|
||||
`layer_${Date.now()}_${Math.floor(Math.random() * 1000)}`;
|
||||
return {
|
||||
...options,
|
||||
id: id,
|
||||
// 图层基本属性
|
||||
name: options.name || `图层 ${id.substring(id.lastIndexOf("_") + 1)}`,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user