Elimina la parte blanca de todos los colores para que las partes más claras sean más transparentes.

Mi problema es muy general y hay complementos que dependen de la versión para el problema que no funciona con mi versión. También encontré soluciones alternativas que no son las soluciones correctas.

Me gustaría convertir el blanco de mi imagen en transparencia, es decir, descomponer el gris en negro y transparente. Sería correcto si pudiera usar el valor de saturación del píxel de la (des)composición HSB, aumentar la saturación de cada píxel al 100% de su valor original s(x,y) y agregar un 100% - s(x, y) transparencia al píxel.

Como sugieren la solución mencionada y muchas otras, usar la imagen en sí como un canal alfa no es una solución. Por ejemplo, si el píxel es 20 % blanco y 80 % gris, y aplica un 20 % de transparencia, el píxel se verá como 80 % - 0,8*0,2 = 56 % negro en lugar de 80 %.

Otra pregunta de stackexchange sobre convertir el blanco en transparente es similar a mi problema, pero según tengo entendido, no cubre mi problema. En caso de que me equivoque, agradecería que alguien me ilumine cómo aplicar eso a mi escenario.

Entonces, ¿quieres que el gris sea transparente?
Quiero que el gris se vuelva negro y medio transparente. Si es, por ejemplo, 30 % negro y 70 % blanco, debe ser 100 % negro y 70 % transparente.
Si el píxel es 20 % blanco y 80 % gris (que es 80 % negro y 20 % gris), aplicaría un 40 % (20 % blanco + 20 % blanco) de transparencia y obtendría alrededor de un 60 % de negro transparente, un gris, que es lo que esperaría. ¿No?
Si entiendo lo que desea hacer, las "Ecuaciones de color" de Faber Birren indicarán qué proporciones son necesarias para el negro, el blanco y el tono de cualquier imagen. Sustituyendo la paridad X por el blanco, se pueden determinar los valores porcentuales de negro y el matiz.

Respuestas (4)

Sé que preguntó cómo hacer esto en Photoshop, pero este puede ser uno de los pocos casos (ahora que Photoshop también tiene relleno con reconocimiento de contenido) donde GIMP hace el trabajo mejor. Así que mi solución sugerida sería:

  1. Descarga e instala GIMP. (Desplácese hacia abajo para el instalador de Windows).

  2. Abre tu imagen en GIMP.

  3. Utilice la herramienta Color a alfa para convertir el blanco en transparente ( enmascarando y ajustando según sea necesario, si desea conservar algo de blanco no transparente en el resultado).

  4. Guarde la imagen resultante y vuelva a abrirla en Photoshop.

Nota: GIMP puede importar y exportar archivos .psd de Photoshop, pero es posible que se pierda parte de la información durante la conversión de ida y vuelta. Puede ser más seguro editar solo sus archivos PSD en Photoshop y usar el formato PNG para transferir imágenes entre Photoshop y GIMP.

Esto es exactamente lo que estaba buscando. Usé la etiqueta adobe-photoshop pero no dije que debe proporcionar una solución solo con ese programa :)

No puede cambiar el gris a negro y hacer que el blanco sea transparente con un solo método. La única forma de hacerlo sin enmascarar es cambiar los niveles de toda la imagen si está de acuerdo. Entonces, si tiene algo coloreado, por ejemplo, en la imagen, tendría que enmascararlo.

(Duplique primero la capa de su imagen y ocúltela para hacer una copia de seguridad) En su capa, cree una máscara de capa. seleccione toda su imagen y ctrl+shift+c cópiela. Alt + clic en el icono de máscara de capa en el panel de capas para activarlo. ctrl+shift+v pégalo allí. Deseleccione y ctrl+i para invertir los colores. Todas las áreas blancas deberían ser negras ahora, lo que significa que están 100% enmascaradas.

Ahora cree una capa de ajuste de umbral. esto debería hacer que la capa de abajo (su capa de imagen) se vuelva en blanco y negro puro. Ajuste el equilibrio según sea necesario y agregue una máscara de capa al umbral si tiene áreas coloreadas que no desea convertir de gris a negro. Seleccione todo ctrl+shift+c copie y pegue en su capa de imagen original.

El resultado debe ser una versión en blanco y negro de su imagen con sus valores originales en blanco y negro (sin umbral) que controlan la capa de transparencia. Su 20 % de grises ahora aparecerá como un 20 % de negros.

1: No estoy buscando un método de un solo paso. 2: Mis objetivos son bastante simples y también puedo presentar mis deseos con fórmulas y ecuaciones. Photoshop es un programa avanzado, apuesto a que hay una manera de hacer lo que quiero. 3: La solución que proporcionó es similar a la de otros que trato de evitar. 4: Olvidé enfatizar, pero la descripción contiene implícitamente: cualquier solución "según sea necesario" no es aceptable. 5: Gracias por tu respuesta de todos modos :)
@DanielTuzes No estoy seguro de cómo las fórmulas son una forma efectiva de describir lo que busca. Según tengo entendido, quería negro donde están sus grises, pero la transparencia debe ser el valor de los grises en blanco y negro. He descrito la forma más fácil de hacer esto sin crear una secuencia de comandos/acción personalizada. No estoy seguro de cómo se puede interpretar como una solución según sea necesario, simplemente porque agregué una nota si-esto-necesita-hacer-esto. Realmente no estoy seguro de qué más estás pidiendo...

Solo por curiosidad, se me ocurrió un script de prueba de concepto para que PS hiciera lo que sugeriste, pero desafortunadamente es extremadamente lento . Si desea probarlo, cree un nuevo documento de alrededor de 25 px cuadrados, nombre la capa base "base" y luego agregue dos capas vacías llamadas "Alfa" y "HSB". La capa alfa se llena con píxeles que tienen un valor gris (en RGB) basado en el valor S, y la capa HSB se llena con píxeles que tienen el valor S modificado a 100. La capa Alfa se puede usar como una máscara de capa para la capa HSB (seleccione todo, agregue máscara de capa a la capa HSB, cambie a canales y pegue la capa alfa copiada en el canal de máscara HSB).

Si oculta todas las paletas, parece que se ejecuta un poco más rápido, pero una imagen real es "ir a tomar un café y tal vez hacer algunas compras" lento. "Toma una siesta" lento.

var currDoc = app.activeDocument;

var sampler = currDoc.colorSamplers.add([0,0]);
for (var x = 0; x < currDoc.width; ++x) {
    for (var y = 0; y < currDoc.height; ++y) {
        currDoc.activeLayer = currDoc.artLayers.getByName("base");
        sampler.move([x,y]);

        var result = selectPixel(x,y, currDoc);
        result = setPixelColorHSB(sampler.color, currDoc);
        result = setPixelColorALPHA(sampler.color, currDoc);

    }
}
sampler = null;
currDoc.selection.deselect;

function setPixelColorHSB(pixelColor, currDoc)  {
    currDoc.activeLayer = currDoc.artLayers.getByName("HSB");
    currDoc.activeLayer.visible = true;

    var color = new SolidColor();

    color.hsb.hue = pixelColor.hsb.hue;
    color.hsb.saturation = 100;
    color.hsb.brightness=pixelColor.hsb.brightness;

    currDoc.selection.fill(color);
    currDoc.activeLayer.visible = false;
    return true;
}

function setPixelColorALPHA(pixelColor, currDoc)    {
    currDoc.activeLayer = currDoc.artLayers.getByName("ALPHA");
    currDoc.activeLayer.visible = true;

    var color = new SolidColor();

    color.rgb.red = Math.floor((pixelColor.hsb.saturation/100) * 255);
    color.rgb.green = color.rgb.red;
    color.rgb.blue = color.rgb.red;

    currDoc.selection.fill(color);
    currDoc.activeLayer.visible = false;
    return true;
}

function selectPixel (pixX, pixY, currDoc)  {
    currDoc.selection.deselect;
    var selRegion = null;
    selRegion = [
        [pixX, pixY],
        [pixX + 1, pixY],
        [pixX + 1, pixY + 1],
        [pixX, pixY + 1],
        [pixX, pixY]
        ];
    currDoc.selection.select(selRegion);
    return true;
}
+1 por el esfuerzo de escribir un guión, sin importar cuántas siestas necesites tomar mientras esperas que termine.

Encontré una forma que se ajusta a mis necesidades. Te lo comparto para que lo critiques. Estoy buscando más mejoras, ¡así que siéntase libre de agregar sus notas o respuestas!

Desafortunadamente, esta solución no es general debido al uso del canal cmyk. Pero con este procedimiento puedes obtener estoingrese la descripción de la imagen aquí

de este: ingrese la descripción de la imagen aquí(descargue las imágenes y vea la transparencia si no ve diferencias)

  1. abra la imagen en modo cmyk, o cambie Modo de imagen a cmyk
  2. cree un nuevo canal alfa Alpha Cyan basado en el canal Cyan: en el panel de canales, haga visible y seleccione Cyan, cópielo (seleccione todo, ctrl+c); cree una nueva capa Alpha Cyan e inserte el canal Cyan ya copiado en el portapapeles (ctrl+v)
  3. haga visibles solo los canales cmyk e inserte una nueva capa con color cian sólido, por lo que en el panel de capas, cree una nueva capa; agréguele un color sólido cian, asígnele el nombre Color Fill Cyan; añádele una máscara vectorial; cargue el canal Alpha Cyan y guárdelo en el canal Color Fill Cyan Mask
  4. repita 2 y 3 para Magenta, Amarillo y Negro
  5. oculte la capa original, elimine la capa de fondo blanco si existe, asegúrese de que las nuevas 4 capas estén visibles
  6. establecer la visibilidad de 4 capas para oscurecer o multiplicar
  7. configure el Modo de imagen en rgb si desea