mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): wip canvas nodes migration
This commit is contained in:
59
invokeai/frontend/web/src/common/util/arrayBuffer.ts
Normal file
59
invokeai/frontend/web/src/common/util/arrayBuffer.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
export const getIsImageDataPartiallyTransparent = (imageData: ImageData) => {
|
||||
let hasTransparency = false;
|
||||
let isFullyTransparent = true;
|
||||
const len = imageData.data.length;
|
||||
let i = 3;
|
||||
for (i; i < len; i += 4) {
|
||||
if (imageData.data[i] !== 0) {
|
||||
isFullyTransparent = false;
|
||||
} else {
|
||||
hasTransparency = true;
|
||||
}
|
||||
}
|
||||
return { hasTransparency, isFullyTransparent };
|
||||
};
|
||||
|
||||
export const getImageDataTransparency = (imageData: ImageData) => {
|
||||
let isFullyTransparent = true;
|
||||
let isPartiallyTransparent = false;
|
||||
const len = imageData.data.length;
|
||||
let i = 3;
|
||||
for (i; i < len; i += 4) {
|
||||
if (imageData.data[i] === 255) {
|
||||
isFullyTransparent = false;
|
||||
} else {
|
||||
isPartiallyTransparent = true;
|
||||
}
|
||||
if (!isFullyTransparent && isPartiallyTransparent) {
|
||||
return { isFullyTransparent, isPartiallyTransparent };
|
||||
}
|
||||
}
|
||||
return { isFullyTransparent, isPartiallyTransparent };
|
||||
};
|
||||
|
||||
export const areAnyPixelsBlack = (imageData: ImageData) => {
|
||||
const len = imageData.data.length;
|
||||
let i = 0;
|
||||
for (i; i < len; ) {
|
||||
if (
|
||||
imageData.data[i++] === 255 &&
|
||||
imageData.data[i++] === 255 &&
|
||||
imageData.data[i++] === 255 &&
|
||||
imageData.data[i++] === 255
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
export const getIsImageDataWhite = (imageData: ImageData) => {
|
||||
const len = imageData.data.length;
|
||||
let i = 0;
|
||||
for (i; i < len; ) {
|
||||
if (imageData.data[i++] !== 255) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
Reference in New Issue
Block a user