es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Redimensionar archivo de marca de agua de ImageMagick y disolver en un bucle.

ImageMagick: Versión: ImageMagick 7.0.10-6 Q16 x64 2020-04-06

SO: Sistema operativo Windows 10 de 64 bits, procesador basado en x64

Hola,

No tengo experiencia con ImageMagick y estoy teniendo dificultades para crear un archivo por lotes que aplique automáticamente una marca de agua a todas las imágenes .jpg dentro de una carpeta.

La idea es que el archivo watermarked.png se redimensione según las dimensiones del archivo .jpg.
El código siguiente funciona bien, el problema es que estoy intentando aplicar cierta transparencia a la marca de agua y este código no lo hace. Cuando intentaba modificar el código para usar los operadores -dissolve o -watermark, recibía mensajes de error.

@echo off
for %%z in (*.jpg) do (
   magick "%%z" watermark.png ^
      -resize %%[fx:t?u.w:s.w]x%%[fx:t?u.h:s.h] ^
      -gravity southeast -composite ./SIGNED/Watermarked_%%z
)
pause

El siguiente código aplica automáticamente una marca de agua a todos los archivos en una carpeta con un nivel de transparencia en el archivo de marca de agua, pero no redimensiona watermark.png.

@echo off
IF NOT EXIST SIGNED mkdir SIGNED
FOR %%a in (*.jpg) DO magick composite -dissolve 50%% -gravity southEast (watermark.png) %%a ./SIGNED/JG2021_%%a
pause

¿Alguno de ustedes sabe cómo redimensionar la marca de agua y aplicar la transparencia?

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Para redimensionar el archivo watermark.png basado en las dimensiones del archivo .jpg y aplicar un cierto nivel de transparencia, puedes modificar el segundo código de la siguiente manera:

    @echo off 
    
    IF NOT EXIST SIGNED mkdir SIGNED 
    
    FOR %%a in (*.jpg) DO (
      magick %%a -format "%%wx%%h" info: > size.txt 
      set /p size= < size.txt 
      magick watermark.png -resize !size! -channel A -evaluate Multiply 0.5 watermark_transparent.png 
      magick composite -gravity southEast watermark_transparent.png %%a ./SIGNED/Watermarked_%%a 
    )
    
    pause
    

    Este código lee las dimensiones del archivo .jpg y las guarda en un archivo de texto.
    Luego redimensiona el archivo watermark.png basado en las dimensiones leídas del archivo de texto y aplica un 50% de transparencia al archivo watermark_transparent.png.
    Finalmente, agrega una marca de agua a todos los archivos .jpg en la carpeta utilizando el archivo watermark_transparent.png redimensionado y transparente.

    ¡Espero que esto te ayude! Avísame si tienes alguna pregunta.

Comments are closed.