Incruste el perfil de color al guardar como JPG a través de un script

Tengo el siguiente script que guarda una copia de mi documento actual como JPG en el escritorio, sin embargo, no puedo lograr que incruste el perfil de color. ¿Alguien sabe cómo hacer eso?

var JPGquality = 12;
var docPath = '/Users/cristianmoisei/Desktop/';
var docName = app.activeDocument.name.replace(/\.[^\.]+$/, '');;

var saveFile = new File(docPath + '/' + docName + '.jpg');

var fileExists = saveFile.exists;
var tries = 1;
while (fileExists) {
  saveFile = new File(docPath + '/' + docName + ('-' + tries) + '.jpg');
  tries++;
  fileExists = saveFile.exists;
  jpgSaveOptions.embedColorProfile = true;
}

SaveJPEG(saveFile, JPGquality);

function SaveJPEG(saveFile, jpegQuality) {
  jpgSaveOptions = new JPEGSaveOptions();
  jpgSaveOptions.embedColorProfile = true;
  jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
  jpgSaveOptions.matte = MatteType.NONE;
  jpgSaveOptions.quality = jpegQuality; //1-12
  activeDocument.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);
}

Respuestas (1)

Ahora funciona, solo elimino el primerojpgSaveOptions.embedColorProfile = true;

var JPGquality = 12;
var docPath = '/Users/cristianmoisei/Desktop/';
var docName = app.activeDocument.name.replace(/\.[^\.]+$/, '');;

var saveFile = new File(docPath + '/' + docName + '.jpg');

var fileExists = saveFile.exists;
var tries = 1;
while (fileExists) {
  saveFile = new File(docPath + '/' + docName + ('-' + tries) + '.jpg');
tries++;
fileExists = saveFile.exists;
}

SaveJPEG(saveFile, JPGquality);

function SaveJPEG(saveFile, jpegQuality) {
  jpgSaveOptions = new JPEGSaveOptions();
  jpgSaveOptions.embedColorProfile = true;
  jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
  jpgSaveOptions.matte = MatteType.NONE;
  jpgSaveOptions.quality = jpegQuality; //1-12
  activeDocument.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);
}

Aquí está mi proceso:

  • Tener un jpg con perfil Adobe RGB (1998)
  • Cámbielo a No colorear Administrar este documento
  • Guarda el archivo
  • reproducir el guión
  • Al abrir el archivo duplicado, el perfil es No color Administrar este documento

ingrese la descripción de la imagen aquí

Este es otro script para probar (fuente feedback.photoshop.com/photoshop_family ):

//Duplicate doc
var doc = app.activeDocument
var fname = doc.name.split(".")
var fname = fname[0]
//var newDoc = doc.duplicate(fname) // This caused active document to be in an 
unsaved state and have no document path
//save part
if (app.documents.length > 0) {
  var thedoc = app.activeDocument;
  var docName = thedoc.name;
  if (docName.indexOf(".") != -1) {
    var basename = docName.match(/(.*)\.[^\.]+$/)[1];
  } else {
    var basename = docName;
  }
  //getting the location, if unsaved save to desktop;
  try {
    var docPath = doc.path;
  } catch (e) {
    var docPath = "~/Desktop";
  }
var docFolder = Folder( doc.path  );
var newFolder = Folder( docFolder.parent + '/' + "02 - web");
    // create folder if missing
    if (!newFolder.exists) {
        $.writeln("Creating new folder: " + newFolder.fsName)
        try {
            if( newFolder.create() === false )
            {
                alert( "error:copyDir:error creating directory         "+newFolder.fsName);
            }
        } catch (e) {
            alert( "error:copyDir:error creating directory "+newFolder.fsName+":"+ e.message);
        }
    }

  var jpegOptions = new JPEGSaveOptions();
  jpegOptions.quality = 12;
  jpegOptions.embedColorProfile = true;
  jpegOptions.matte = MatteType.NONE;
  var filename = newFolder + '/' + basename + '.jpg';
    $.writeln(filename);
  thedoc.saveAs((new File(filename)), jpegOptions, true);
}; 
Oh, disculpas, pegué una versión en la que estaba tratando de hacer que funcionara. El script funciona, pero no incorpora el perfil de color. Mis JPG se guardan sin un perfil de color. ¿Alguna idea de como arreglarlo?
El script de mi respuesta funciona, ya lo pruebo e incrusto el perfil de color
Hm, tal vez estoy haciendo algo mal. Lo ejecuté como sugirió (como lo tenía antes) y no incrusta el perfil de color. (mire el rojo del botón): dropbox.com/s/a8enie1qe6ou8rj/… Si hago Guardar como y marco la casilla para incluir el perfil de color, entonces funciona. dropbox.com/s/phop3frfxc18dxf/… He subido las dos imágenes aquí: dropbox.com/sh/jmopg807k025p71/AAB6kTm7qVh7YrST9WVYbjKWa?dl=0
Agrego una animación con el proceso.
Entonces, si abro el archivo en Photoshop después de seguir los pasos que me sugeriste, tiene el mismo perfil de color (puede ser que asigne un perfil de color cuando abre un archivo). Pero si abro el archivo en cualquier otro programa (Vista previa, Correo electrónico) no será exacto. Y el problema es que es preciso en todas partes si hago clic en Archivo> Guardar como> Incrustar perfil de color marcado. Aquí hay un video de lo que quiero decir: dropbox.com/s/wg81qylhz58w5pw/example.mov?dl=0 Entonces, ¿hay alguna forma de replicar esa casilla en el script? Tal vez simplemente no entiendo la gestión del color lo suficientemente bien y me estoy perdiendo algo.
ok, entonces no se trata del script, ya que funciona correctamente, mi respuesta es correcta. Debe haber alguna diferencia de calidad con el JPG al guardar el culo y al guardar la copia del script. Probé todas las posibilidades y no encontré ningún problema.
Ya veo, tendré que guardar manualmente cuando la precisión del color sea importante. ¿Qué es ese IDE que estás usando para editar el script?
Adobe ExtendScript Toolkit, en realidad es el que se abre cuando hago clic dos veces en el script :-)
Agrego otro script en la respuesta, la diferencia es que el archivo se guarda en una carpeta. Pero puedes intentarlo.