Código JavaScript Photoshop no funciona correctamente – JavaScript – SitePoint Forums
Este script cambia el color del texto de la capa activa a negro, lo exporta como un archivo PNG con un nombre específico, luego cambia el color del texto de la capa activa a blanco y lo exporta nuevamente como un archivo PNG. muestra el nombre y repite el mismo proceso con diferentes colores (rosa, azul, verde, rojo) y los guarda como archivos PNG con diferentes nombres.
Exporta los 6 archivos correctamente, PERO exporta cada archivo como negro en lugar de los colores correspondientes.
Se intentó agregar =null antes de volver a pintar, pero activeLayer no puede ser igual a null o indefinido.
Aquí está el código:
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "000000";
var textLayerName = app.activeDocument.activeLayer.name;
var newName = prompt("Enter a new name for the export", "black_" + textLayerName);
var exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.quality = 100;
var file = new File("black " + newName + ".png");
app.activeDocument.exportDocument(file, ExportType.SAVEFORWEB, exportOptions);
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "FFFFFF";
var file2 = new File("white " + newName + ".png");
app.activeDocument.exportDocument(file2, ExportType.SAVEFORWEB, exportOptions);
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "fc82d8";
var file3 = new File("pink " + newName + ".png");
app.activeDocument.exportDocument(file3, ExportType.SAVEFORWEB, exportOptions);
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "63a8e7";
var file4 = new File("blue " + newName + ".png");
app.activeDocument.exportDocument(file4, ExportType.SAVEFORWEB, exportOptions);
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "0c6a27";
var file5 = new File("green " + newName + ".png");
app.activeDocument.exportDocument(file5, ExportType.SAVEFORWEB, exportOptions);
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "a80000";
var file6 = new File("red " + newName + ".png");
app.activeDocument.exportDocument(file6, ExportType.SAVEFORWEB, exportOptions);
¿Intentar configurarlo por separado antes de configurar el color?
así que en vez
app.activeDocument.activeLayer.textItem.color = new SolidColor();
app.activeDocument.activeLayer.textItem.color.rgb.hexValue = "FFFFFF";
intentalo
var color;
...
color = new SolidColor();
color.rgb.hexValue="FFFFFF";
app.activeDocument.activeLayer.textItem.color = color;
?
Sí, cambié el código en consecuencia y ahora los colores negro, azul, verde y rojo se exportan correctamente. Sin embargo, el blanco (que viene inmediatamente después del negro) se exporta como azul claro, y el archivo rosa (que viene después del blanco) se exporta con el mismo color que el archivo azul.
var textColor = new SolidColor();
textColor.rgb.hexValue = "000000";
app.activeDocument.activeLayer.textItem.color = textColor;
var textLayerName = app.activeDocument.activeLayer.name;
var newName = prompt("Enter a new name for the export", "black_" + textLayerName);
var exportOptions = new ExportOptionsSaveForWeb();
exportOptions.format = SaveDocumentType.PNG;
exportOptions.quality = 100;
var file = new File("black " + newName + ".png");
app.activeDocument.exportDocument(file, ExportType.SAVEFORWEB, exportOptions);
var textColor = new SolidColor();
textColor.rgb.hexValue = "FFFFFF";
app.activeDocument.activeLayer.textItem.color = textColor;
var file2 = new File("white " + newName + ".png");
app.activeDocument.exportDocument(file2, ExportType.SAVEFORWEB, exportOptions);
var textColor = new SolidColor();
textColor.rgb.hexValue = "fc82d8";
app.activeDocument.activeLayer.textItem.color = textColor;
var file3 = new File("pink " + newName + ".png");
app.activeDocument.exportDocument(file3, ExportType.SAVEFORWEB, exportOptions);
var textColor = new SolidColor();
textColor.rgb.hexValue = "63a8e7";
app.activeDocument.activeLayer.textItem.color = textColor;
var file4 = new File("blue " + newName + ".png");
app.activeDocument.exportDocument(file4, ExportType.SAVEFORWEB, exportOptions);
var textColor = new SolidColor();
textColor.rgb.hexValue = "0c6a27";
app.activeDocument.activeLayer.textItem.color = textColor;
var file5 = new File("green " + newName + ".png");
app.activeDocument.exportDocument(file5, ExportType.SAVEFORWEB, exportOptions);
var textColor = new SolidColor();
textColor.rgb.hexValue = " a80000";
app.activeDocument.activeLayer.textItem.color = textColor;
var file6 = new File("red " + newName + ".png");
app.activeDocument.exportDocument(file6, ExportType.SAVEFORWEB, exportOptions);
¿La imagen original está en modo RGB?
Esta es una capa de texto, no una imagen. No ha sido reconstruido ni transformado en un objeto inteligente. Aquí hay una captura de pantalla del selector de color, no estoy seguro si es útil jajaja
Esta es una capa de texto, en cierto sentido. Tiene un modo. Y si ese modo no es RGB-8, eso podría interferir. Con Imagen abierta, vaya al menú Imagen y mire Modo.
¡RESUELTO!
Aparentemente, si agrego “FFFFFF”, se exporta mal. Pero si escribo “FFFFFF”, se exportará en blanco como debería. Lo mismo ocurre con el rojo y el rosa, pero no con el azul, el verde o el negro.
¿Sabes cómo puedo exportar los archivos en una carpeta normal llamada “”?un número que aumenta con cada salida + el nombre ingresado en la solicitud” en lugar de la carpeta .zip que creó?