Tengo una capa transparente en Photoshop CS5 (por lo que, internamente, probablemente se almacena como un componente RGB no multiplicado más un componente alfa por píxel).
Ahora quiero transformar esto en una capa opaca (solo RGB no premultiplicado) + una máscara alfa. el resultado debería verse igual que el original.
No puedo simplemente subyacer la capa transparente con negro, tomar la selección de ella como una máscara y fusionar las capas, porque esto daría como resultado que el alfa se premultiplique en los valores RGB.
Espero que entiendas el problema y puedas darme una solución.
Como explicación alternativa: quiero el proceso INVERSO de esto:
- crea una nueva capa y pega en cualquier imagen
- crear una máscara con un degradado de blanco a negro
- aplicar la máscara de capa
Explicación de imágenes:
Estado A:
Estado B:
IMPORTANTE: la capa es solo para este ejemplo completamente roja constante, pero podría pensar en cualquier imagen arbitraria en lugar de la constante roja. Entonces, para pasar del estado A al estado B, uno simplemente tiene que aplicar la máscara de capa.
Quiero saber cómo ir del Estado B al Estado A.
fuente
Respuestas:
Entiendo completamente tu dolor. Aquí está mi solución :)
Extraer alfa como acción de máscara
Esto es lo que hace:
Editar:
espero que esto ayude :)
fuente
¡Incorrecto! ¡Todo mal!
Me engañé a mí mismo, y a ti también en el proceso: lo que creé es de hecho una imagen premultiplicada, no premultiplicada con negro sino con blanco. Dejo esta respuesta para que otros la desarrollen.
Logré hacerlo así:
Y así es como lo hice:
Esta es la imagen de prueba que utilicé. La vista del canal en PS se ve así:
Al seleccionar los canales individuales, los copié en capas individuales, luego los aplané con un fondo blanco para recibir un mapa en blanco y negro como se muestra aquí:
También extraje la transparencia de la imagen original en una capa haciendo clic con el comando en la miniatura de la capa y llenando una nueva capa con la selección.
Luego creé una nueva imagen con las mismas dimensiones y sin transparencia. Luego pegué las capas RGB que había creado en los canales correspondientes en la nueva imagen:
En el último paso, 'desenvolví' la capa haciendo doble clic y creé una máscara de capa usando la capa alfa de la imagen original, lo que resultó en esto:
Como se indicó anteriormente, esto no crea una imagen no premultiplicada, ya que mi ejemplo tendría que verse así para no premultiplicarse:
¿Alguien es más inteligente que yo y puede crear esto? Creo que sin una secuencia de comandos avanzada basada en píxeles, esto no es posible en Photoshop.
fuente
Ok, creé un filtro simple de pixelBender que se puede usar con el complemento de Photoshop PixelBender (http://labs.adobe.com/downloads/pixelbenderplugin.html) para eliminar la transparencia de una capa. aquí está: http://neo.cycovery.com/removeTransparency.pbk
fuente
Según las respuestas dadas y sus comentarios, la respuesta corta es: no puede hacer lo que quiere. Una vez que aplica la máscara, la capa se renderiza y los datos de imagen que no se ven se desechan.
EDITAR:
Hice algunos archivos png de muestra y luego usé php para manipularlos (código fuente a continuación).
Si creo un png con transparencia aleatoria y lo guardo mientras la capa tiene una máscara, las áreas 100% claras (como las de una herramienta de recuadro) se muestran en blanco si el soporte alfa está habilitado o no. Los degradados que contienen una cantidad de 100% de borrado no se muestran con alfa deshabilitado.
Si aplico la máscara de capa (permanentemente) y luego creo el png, entonces php muestra la imagen original si alpha está deshabilitado.
Entonces, una posible solución para esto es encontrar un paquete de software que no sea compatible con PNG alfa y volver a guardarlo desde allí. En cuanto a la recuperación de la máscara original, aún no la he visto.
Ambos ejemplos de código son prueba de concepto y LENTO.
Para extraer el alfa (nota: php tiene una limitación GD de alfa de nivel 128, en lugar de 256), por lo que se pierde algo de precisión. El alfa se puede extender a 256 usando la herramienta de niveles)
fuente
Descubrí cómo hacerlo en GIMP , puede que no sea PhotoShop, pero al menos hará lo que pides. (Como lo interpreto de todos modos;))
En este punto, te queda una imagen con una máscara de canal alfa.
Puedes ir un paso más allá:
También hay un clip de YouTube sobre cómo hacerlo.
fuente
Esto parece alucinantemente complejo. Si entiendo la pregunta original y sus diversas aclaraciones correctamente, el problema es tomar cualquier imagen arbitraria que contenga transparencia y hacerla completamente opaca, luego aplicar los valores alfa originales como una máscara para recrear la apariencia original.
Si esta es la pregunta, es una respuesta muy simple, aunque un poco tediosa.
Copie la capa 10 veces. La transparencia se "completará" en la imagen compuesta.
Combine todas las copias (pero NO la capa original , que necesitará para los últimos pasos).
Repita los pasos 1 y 2 con la capa fusionada, luego vuelva a hacerlo. En este punto, todos los píxeles que eran menos del 100% transparentes ahora son 100% opacos (si hay algunas dispersiones, simplemente repita el proceso hasta que no haya ninguna). Esa es tanta información de imagen como es posible recuperar.
Ctl / Cmd-Haga clic en la miniatura de la capa original para cargar su transparencia.
Con la nueva capa opaca seleccionada, haga clic en el icono de máscara de capa en el Panel de capas.
fuente
Ok, esto es bastante simple (tienes que ignorar las hormigas que marchan)
Haga una nueva capa y llénela completamente con el color que esté usando (si el muestreo lo toma desde el punto muerto de la primera imagen)
Luego tome su primera imagen y CTRL + Haga clic en la miniatura de la capa, debería ver alguna versión de esto:
Como dije antes: ignore a las hormigas que marchan, el plumaje entra en vigencia automáticamente en CS5.
Luego, asegúrese de tener seleccionada la capa rellena y haga clic en el botón de máscara:
Luego solo oculta la capa inferior y deberías terminar, con el efecto exacto que estás buscando :)
Y así es como aplicar ingeniería inversa a una máscara aplicada en CS5. La función de selección de capa CS5 es bastante avanzada, por lo que la mayoría de las veces simplemente ignora a las hormigas marchantes, ya que no muestran correctamente ningún tipo de plumaje que continuará con la selección :)
Espero que funcione para usted.
fuente
Lo que desea hacer se realiza fácilmente mediante un complemento, como el complemento "Eliminar transparencia" de Photofreebies. Primero, haga clic en la capa para seleccionar los píxeles transparentes, luego guarde esta información de transparencia en un nuevo canal para mantenerla. Luego aplica el filtro "Eliminar transparencia" y ve que los píxeles 'ocultos' en su capa se vuelven opacos (bastante interesante para ver cómo Photoshop diseña sus píxeles 100% transparentes, por cierto). Realmente deseo durante años que esto se haya integrado en Photoshop de forma nativa, pero por desgracia, demasiado avanzado, supongo.
Desafortunadamente, no puedo encontrar una versión compatible con Photoshop CS6 de dicho complemento para Mac, así que estoy atascado en este momento. GraphicConverter también puede hacerlo (eliminar el canal alfa).
fuente
Aquí está la respuesta:
Haz una capa con las cosas que deseas en la imagen.
Haga una selección para el canal alfa deseado.
Haga la selección una "máscara de capa" para la capa de imagen.
Haga clic derecho en la máscara de capa y "Aplicar máscara de capa".
Ahora comienza la magia:
¡De nada!
fuente