3 votos

colocar texto sobre la imagen sin imagemagick

Tengo un archivo de imagen png al que me gustaría superponer texto, a través de la línea de comandos (para utilizarlo en un Makefile). El texto a superponer es dinámico, se decide en el momento de modificar la imagen.

Soy consciente de que puedo instalar ImageMagick para hacerlo, pero preferiría utilizar un método que sólo requiera el OS X estándar junto con las herramientas de desarrollo de Xcode.

¿Existe algún comando (o secuencia de comandos, incluyendo AppleScript si es necesario) que pueda utilizar para que esto ocurra? (Si lo hay, un ejemplo sería excelente).

4voto

alex Puntos 3964

Podrías intentar usar un lenguaje de scripting que venga instalado con OS X, como PHP o Ruby, y escribir un script</strkeep><strkeep> de línea de comandos usándolo.

Aquí hay un ejemplo usando PHP:

<?php

/*
Usage
php addtext.php input.png "The text"
*/

//  The source image (taken from the command line argument)
$image = imagecreatefrompng($argv[1]);

//  The text (taken from the command line argument)
$text = $argv[2];

//  Red colour
$colour = imagecolorallocate($image, 255, 0, 0);

//  Change font as desired
$font = '/Library/Fonts/Impact.ttf';

//  Add the text
imagettftext($image, 20, 0, 20, 30, $colour, $font, $text);

//  Save the image
imagepng($image, 'out-image.png');

//  Free up memory
imagedestroy($image);

?>

Guarda este script en un archivo llamado algo así como addtext.php y luego ejecútalo así

php addtext.php image.png "Some text to add"

Este ejemplo script debería dar como resultado una imagen llamada out-image.png con el texto añadido, utilizando la fuente Impact True Type que se instala con OS X, en el mismo directorio que el PHP script.

Tal vez quiera leer sobre Función imagettftext de PHP para jugar con la representación del texto.

Algo similar podría hacerse en Ruby, Python, etc. pero no estoy seguro de los comandos / bibliotecas de manipulación / creación de imágenes "incorporados" que vienen instalados con OS X para esos lenguajes de scripting.

Espero que esto sea un buen punto de partida.

0voto

maxpenguin Puntos 1488

Estaba tratando de hacer lo que pediste usando Applescript y Preview.app pero Preview no es Applescriptable.

Este es un feo truco pero puede ser adecuado para su propósito, utilizando Automator configure el siguiente flujo de trabajo:

enter image description here

Si lo guardas como un flujo de trabajo puedes ejecutarlo desde la línea de comandos con el comando automator comando como este:

for i in `ls {location of files to be processed}`;do `automator -i $i {location of .workflow}`;done

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X