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.

Distorsión de ImageMagick con aumento de lienzo virtual.

Usando ImageMagick (convert), intento crear una distorsión de una imagen que resulte en una imagen más grande que la original, pero que solo contenga un subconjunto de la misma.

Sin embargo, al realizar la distorsión con ImageMagick, la parte inferior se recorta a las dimensiones de la imagen original. La solicitud que estoy realizando es esta:

Imagen: https://i.stack.imgur.com/alEV8.png

convert \
  -verbose \
   img-to-distort.png \
  -matte \
  -virtual-pixel transparent \
  -interpolate integer \
  -distort perspective '64,0 0,-4  128,0 24,8  128,96 24,112  64,96 0,128' \
   output.png

Las dimensiones de la imagen original son 128 píxeles de ancho y 96 de alto.

¿Cómo puedo aumentar el lienzo virtual en el que ocurre la distorsión antes de guardarla? El uso de +distort no es bueno, porque pierdo el desplazamiento, etc.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para aumentar el lienzo virtual en el que ocurre la distorsión antes de guardarla, se puede utilizar la opción -extent en ImageMagick. Esta opción agrega espacio adicional al lienzo y posiciona la imagen original dentro de él.

    Para hacer esto, se puede agregar la siguiente línea a su comando:

    -extent 256x192
    

    Esto agregará un lienzo de 256×192 al archivo de salida, que es dos veces el ancho y la altura de la imagen original. Se pueden ajustar estos valores según sea necesario. El comando resultante sería:

    convert \
      -verbose \
       img-to-distort.png \
      -matte \
      -virtual-pixel transparent \
      -interpolate integer \
      -distort perspective '64,0 0,-4  128,0 24,8  128,96 24,112  64,96 0,128' \
      -extent 256x192 \
      output.png
    

    Esto debería resultar en una imagen de salida que es dos veces el ancho y la altura del original, pero que solo contiene el subconjunto incluido en la distorsión.

Comments are closed.