una transparente llama las imagenes imagen hacer guardar formato fondo con como png imagemagick alpha-transparency

png - llama - imagen transparente



Reemplace la transparencia en imágenes PNG con fondo blanco (14)

Tengo algunas imágenes PNG con transparencia, y necesito crear versiones con la capa de imagen compuesta sobre un fondo blanco. He intentado varias cosas con las operaciones de "conversión" de Image Magick, pero o nada sucede o me sale un error. No quiero ir a un formulario JPG intermedio porque no quiero los artefactos. Por supuesto, es fácil hacer esto en Gimp o Photoshop o lo que sea, pero prefiero escribirlo desde la línea de comandos porque hay muchas de estas cosas.

Un ejemplo de un comando de Magia de imagen que no funciona es:

convert img1.png -background white -flatten img1-white.png

Eso resulta en un error.

¡Gracias!


A continuación, le indicamos cómo reemplazar la misma imagen en todas las carpetas de un directorio con blanco en lugar de transparente:

mogrify -background white -flatten */*.png


Bueno, parece que mi decisión de instalar "graphics magick" sobre "image magick" tiene algunos bordes ásperos: cuando reinstalo la "imagen mágica" genuina y antigua, el comando anterior funciona perfectamente bien.

Edite , mucho tiempo después: uno de estos días comprobaré si la "magia gráfica" ha solucionado este problema.


El único que funcionó para mí fue una mezcla de todas las respuestas:

convert in.png -background white -alpha remove -flatten -alpha off out.png


El uso de -flatten me volvió completamente loco porque -flatten en combinación con mogrify recortar y cambiar el tamaño simplemente no funciona. El oficial y para mi única forma correcta es "eliminar" el canal alfa.

-alpha eliminar -alpha off (no es necesario con JPG)

Consulte la documentación: http://www.imagemagick.org/Usage/masking/#remove


Es -alpha off, NO -alpha eliminar! La carga de la tienda de aplicaciones iOS falla cuando hay un canal alfa en cualquier ícono.

He aquí cómo hacerlo: mogrificar -alpha off * .png


Esta no es exactamente la respuesta a tu pregunta, pero encontré tu pregunta al intentar averiguar cómo eliminar el canal alfa, así que decidí agregar esta respuesta aquí:

Si desea eliminar el canal alfa usando imagemagick, puede usar este comando:

mogrify -alpha off ./*.png



La imagen aplanada y la imagen de fondo aplicada son sencillas en ImageMagick

Sin embargo, el orden de los comandos es muy importante.

Para aplicar cualquier fondo en una imagen transparente y aplanarlo, primero aplique el fondo que aplanarlo. Lo contrario no funciona.

$ convert sourceimage.png -background BackgroundColor -flatten destinationimage.png


La sección Alpha Remove de la Guía de uso de ImageMagick sugiere usar la opción -alpha remove , por ejemplo:

convert in.png -background white -alpha remove out.png

... utilizando el color de fondo de su elección.

La guía dice:

Esta operación es simple y rápida, y hace el trabajo sin necesidad de utilizar memoria adicional, u otros efectos secundarios que pueden estar asociados con técnicas alternativas de eliminación de transparencia. Por lo tanto, es la forma preferida de eliminar la transparencia de la imagen.

Además añade la nota:

Tenga en cuenta que mientras se "elimina" la transparencia, el canal alfa permanecerá activado, pero ahora será completamente opaco. Si ya no necesita el canal alfa, puede usar Alpha Off para desactivarlo.

Por lo tanto, si no necesita el canal alfa, puede -alpha off el tamaño de la imagen de salida agregando la opción -alpha off , por ejemplo:

convert in.png -background white -alpha remove -alpha off out.png

Hay más detalles sobre otras técnicas de uso frecuente para eliminar la transparencia que se describen en la sección http://www.imagemagick.org/Usage/masking/#remove .

En esa sección se incluye una advertencia importante al uso de -flatten como técnica para eliminar la transparencia:

Sin embargo, esto no funcionará con "mogrify" o con una secuencia de múltiples imágenes, básicamente porque el operador "-latinado" está realmente diseñado para combinar múltiples imágenes en una sola imagen.

Entonces, si está convirtiendo varias imágenes a la vez, por ejemplo, generando miniaturas desde un archivo PDF, -flatten no hará lo que quiere (aplanará todas las imágenes de todas las páginas en una sola imagen). Por otro lado, el uso de la técnica de -alpha remove todavía producirá múltiples imágenes, cada una con transparencia eliminada.


Para eliminar realmente el canal alfa del archivo, use la opción de apagado alfa :

convert in.png -background white -alpha off out.png


Parece que su comando es correcto, por lo que el problema podría deberse a la falta de soporte para PNG (). Puede verificar con la convert -list configure o simplemente intente lo siguiente:

sudo yum install libpng libpng-devel


Vi esta pregunta y respuestas que realmente me ayudaron, pero luego tuve que hacerlo para una gran cantidad de archivos, así que en caso de que tenga varias imágenes (imágenes PNG) en una carpeta y quiera hacerlo para todos:

find ./ -name "*.png" -exec convert {} -flatten {} /;


esto crea una imagen colocando la 1ª con transparencia encima de la 2ª.

composite -gravity center ImgWithTransp.png BackgroundSameSizeOfImg.png ResultImg.png

originalmente encontré la punta en este post


-background white -alpha off

Ejemplo:

convert image.png -background white -alpha off white.png

Siéntase libre de reemplazar el white con cualquier otro color que desee. La documentación de Imagemagick dice esto acerca de la operación -alpha off :

Esta operación es simple y rápida, y hace el trabajo sin necesidad de utilizar memoria adicional, u otros efectos secundarios que pueden estar asociados con técnicas alternativas de eliminación de transparencia. Por lo tanto, es la forma preferida de eliminar la transparencia de la imagen.