export rectangular Layer as .webp
parent
1df0dbc128
commit
ecd739061e
16
outpaint.js
16
outpaint.js
|
|
@ -204,8 +204,8 @@ async function snapAndFillExe(session_id) {
|
||||||
layer.visible = false
|
layer.visible = false
|
||||||
}
|
}
|
||||||
await psapi.reSelectMarqueeExe(selectionInfo)
|
await psapi.reSelectMarqueeExe(selectionInfo)
|
||||||
const util_layer = require('./utility/layer')
|
const layer_util = require('./utility/layer')
|
||||||
await util_layer.collapseFolderExe([snapshotGroup], false)
|
await layer_util.collapseFolderExe([snapshotGroup], false)
|
||||||
})
|
})
|
||||||
console.log('snapAndFillLayers: ', snapAndFillLayers)
|
console.log('snapAndFillLayers: ', snapAndFillLayers)
|
||||||
return snapAndFillLayers
|
return snapAndFillLayers
|
||||||
|
|
@ -321,8 +321,8 @@ async function outpaintFasterExe(session_id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//collapse the folders
|
//collapse the folders
|
||||||
const util_layer = require('./utility/layer')
|
const layer_util = require('./utility/layer')
|
||||||
await util_layer.collapseFolderExe(
|
await layer_util.collapseFolderExe(
|
||||||
[snapshotGroup, snapshotMaskGroup],
|
[snapshotGroup, snapshotMaskGroup],
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|
@ -456,8 +456,8 @@ async function outpaintExe(session_id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//collapse the folders
|
//collapse the folders
|
||||||
const util_layer = require('./utility/layer')
|
const layer_util = require('./utility/layer')
|
||||||
await util_layer.collapseFolderExe(
|
await layer_util.collapseFolderExe(
|
||||||
[snapshotGroup, snapshotMaskGroup],
|
[snapshotGroup, snapshotMaskGroup],
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|
@ -614,9 +614,9 @@ async function inpaintFasterExe(session_id) {
|
||||||
for (layer of inpaintLayers) {
|
for (layer of inpaintLayers) {
|
||||||
layer.visible = false
|
layer.visible = false
|
||||||
}
|
}
|
||||||
const util_layer = require('./utility/layer')
|
const layer_util = require('./utility/layer')
|
||||||
|
|
||||||
await util_layer.collapseFolderExe(
|
await layer_util.collapseFolderExe(
|
||||||
[snapshotGroup, maskGroup],
|
[snapshotGroup, maskGroup],
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
const batchPlay = require('photoshop').action.batchPlay
|
const batchPlay = require('photoshop').action.batchPlay
|
||||||
const psapi = require('../psapi')
|
const psapi = require('../psapi')
|
||||||
|
const layer_util = require('../utility/layer')
|
||||||
async function snapShotLayer() {
|
async function snapShotLayer() {
|
||||||
//snapshot layer with no mask
|
//snapshot layer with no mask
|
||||||
let command = [
|
let command = [
|
||||||
|
|
@ -110,32 +111,44 @@ async function snapShotLayerExe() {
|
||||||
}
|
}
|
||||||
|
|
||||||
class IO {
|
class IO {
|
||||||
constructor() {
|
// constructor() {}
|
||||||
this.io_helper = new IOHelper()
|
static async exportWebp(layer) {
|
||||||
|
await executeAsModal(async () => {
|
||||||
|
//we assume we have a valid layer rectangular image/layer, no transparency
|
||||||
|
const doc_entry = await getCurrentDocFolder() //get the main document folder before we switch doc
|
||||||
|
const layer_info = await layer_util.Layer.getLayerInfo(layer)
|
||||||
|
//*) create a new document
|
||||||
|
const new_doc = await IOHelper.createDocumentExe(
|
||||||
|
layer_info.width,
|
||||||
|
layer_info.height
|
||||||
|
)
|
||||||
|
const new_layer = await layer_util.Layer.duplicateToDoc(
|
||||||
|
layer,
|
||||||
|
new_doc
|
||||||
|
)
|
||||||
|
//*) resize the layer to the same dimension as the document
|
||||||
|
|
||||||
|
await layer_util.Layer.moveTo(new_layer, 0, 0) //move to the top left corner
|
||||||
|
//
|
||||||
|
await IOHelper.saveAsWebpExe(doc_entry) //save current document as .webp file, save it into doc_entry folder
|
||||||
|
})
|
||||||
}
|
}
|
||||||
async exportWebp() {
|
static async exportPng() {}
|
||||||
//*) snapshot the current visible layers of the document
|
static async exportDoc() {}
|
||||||
//*)
|
static async exportLayer() {}
|
||||||
//create a new document
|
|
||||||
//
|
|
||||||
await this.io_helper.saveAsWebpExe() //save current document as .webp file
|
|
||||||
}
|
|
||||||
async exportPng() {}
|
|
||||||
async exportDoc() {}
|
|
||||||
async exportLayer() {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class IOHelper {
|
class IOHelper {
|
||||||
constructor() {}
|
static async saveAsWebp(doc_entry) {
|
||||||
|
//doc_entry must be in dataFolder or tempFolder
|
||||||
async saveAsWebp() {
|
//save document as webp
|
||||||
const document_id = app.activeDocument.id
|
const document_id = app.activeDocument.id
|
||||||
|
|
||||||
doc_entery = await getCurrentDocFolder()
|
// doc_entry = await getCurrentDocFolder()
|
||||||
file_entery = await doc_entery.createFile('temp.webp', {
|
const file_entry = await doc_entry.createFile('temp.webp', {
|
||||||
overwrite: true,
|
overwrite: true,
|
||||||
})
|
})
|
||||||
const token = await fs.createSessionToken(file_entery)
|
const token = await fs.createSessionToken(file_entry)
|
||||||
const result = await batchPlay(
|
const result = await batchPlay(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
|
@ -175,11 +188,28 @@ class IOHelper {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
async saveAsWebpExe() {
|
static async saveAsWebpExe(doc_entry) {
|
||||||
await executeAsModal(async () => {
|
await executeAsModal(async () => {
|
||||||
await saveAsWebp()
|
await this.saveAsWebp(doc_entry)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
static async createDocumentExe(width, height) {
|
||||||
|
let new_doc
|
||||||
|
try {
|
||||||
|
await executeAsModal(async () => {
|
||||||
|
new_doc = await app.documents.add({
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
resolution: await app.activeDocument.resolution,
|
||||||
|
mode: 'RGBColorMode',
|
||||||
|
fill: 'transparent',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
console.warn(e)
|
||||||
|
}
|
||||||
|
return new_doc
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,7 @@ class Layer {
|
||||||
const left_dist = layer_info.left - to_x
|
const left_dist = layer_info.left - to_x
|
||||||
console.log('-left_dist, -top_dist', -left_dist, -top_dist)
|
console.log('-left_dist, -top_dist', -left_dist, -top_dist)
|
||||||
await layer.translate(-left_dist, -top_dist)
|
await layer.translate(-left_dist, -top_dist)
|
||||||
|
|
||||||
// await reSelectMarqueeExe(selection_info)
|
// await reSelectMarqueeExe(selection_info)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e)
|
console.warn(e)
|
||||||
|
|
@ -150,6 +151,11 @@ class Layer {
|
||||||
}
|
}
|
||||||
static resizeTo() {}
|
static resizeTo() {}
|
||||||
static fitSelection() {}
|
static fitSelection() {}
|
||||||
|
static async duplicateToDoc(layer, to_doc) {
|
||||||
|
const dupLayer = await layer.duplicate(to_doc)
|
||||||
|
// await selectLayers([dupLayer])
|
||||||
|
return dupLayer
|
||||||
|
}
|
||||||
static {}
|
static {}
|
||||||
}
|
}
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class GenerationSession {
|
||||||
|
|
||||||
this.isFirstGeneration = true // only before the first generation is requested should this be true
|
this.isFirstGeneration = true // only before the first generation is requested should this be true
|
||||||
// const is_visible = await this.outputGroup.visible
|
// const is_visible = await this.outputGroup.visible
|
||||||
await util_layer.collapseFolderExe([this.outputGroup], false) // close the folder group
|
await layer_util.collapseFolderExe([this.outputGroup], false) // close the folder group
|
||||||
// this.outputGroup.visible = is_visible
|
// this.outputGroup.visible = is_visible
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
|
@ -105,7 +105,7 @@ class GenerationSession {
|
||||||
//create "Mask -- Paint White to Mask -- temporary" layer if current session was inpiant and the selected session is inpaint
|
//create "Mask -- Paint White to Mask -- temporary" layer if current session was inpiant and the selected session is inpaint
|
||||||
// the current inpaint session ended on inpaint
|
// the current inpaint session ended on inpaint
|
||||||
g_b_mask_layer_exist = false
|
g_b_mask_layer_exist = false
|
||||||
await util_layer.deleteLayers([g_inpaint_mask_layer])
|
await layer_util.deleteLayers([g_inpaint_mask_layer])
|
||||||
await createTempInpaintMaskLayer()
|
await createTempInpaintMaskLayer()
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
@ -118,7 +118,7 @@ class GenerationSession {
|
||||||
|
|
||||||
if (this.prevOutputGroup) {
|
if (this.prevOutputGroup) {
|
||||||
// const is_visible = await this.prevOutputGroup.visible
|
// const is_visible = await this.prevOutputGroup.visible
|
||||||
await util_layer.collapseFolderExe(
|
await layer_util.collapseFolderExe(
|
||||||
[this.prevOutputGroup],
|
[this.prevOutputGroup],
|
||||||
false
|
false
|
||||||
) // close the folder group
|
) // close the folder group
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue