ImageMagick Convert: Platzieren von Text auf einem Buchdeckel

513
Jonathan Hayward

Ich versuche über ImageMagick ein eBook-Cover zu erstellen, das in ein größeres Projekt eingebunden werden kann, nachdem es funktioniert.

Ich möchte später auf Geometrie und Schwerkraft eingehen, aber derzeit habe ich zwei relevante Bilder:

  1. Ein 1000x1600 JPEG-Hintergrund, den ich über GIMP genug aufgehellt habe, damit er keine schwarzen oder fast schwarzen Pixel aufweist

  2. Ein 800 x 70 PNG-Autorenname, bei dem ein einzelner Text als schwarzer Text vor einem transparenten Hintergrund gespeichert wird.

(Zur Zeit wird das 800x70-Bild von Pango erzeugt, und es kann strikt mehr Optionen geben als das Zusammensetzen von Bildern; ich gehe davon aus, dass es möglich ist, einen Titel und einen Namen über Pango zu erstellen und das Bild-Compositing zu umgehen. Ich würde das jedoch gerne wissen zusätzlich zu und nicht anstelle eines grundlegenden Aufrufs für das Bild-Compositing, das eine PNG mit Alpha über ein JPEG setzen würde und deren Position mit -gravityund steuern kann -geometry.)

Ich versuche, die Layering-Beispiele von ImageMagick zu umgehen, und habe einige Variationen des Folgenden ausprobiert:

convert -size 1000x1600 -geometry +0+0 \ -composite background.jpg -gravity center -geometry +0+0 \ -composite author.png -gravity center -geometry +0+0 \ result.jpg 

Was ich daraus bekomme, ist ein durchgehendes schwarzes Bild mit 800 x 70 Pixeln, das ich erwarten würde, wenn Sie Transparenz von einer PNG-Datei wie dem Namen des Autors erhalten, um ein JPEG zu erstellen.

Was muss ich tun, um (zumindest jetzt) ​​an einen Punkt zu gelangen, an dem ich ein 1000x1600-Ergebnisbild habe, das dem Hintergrund entspricht und der Autorenname an einer verständlichen Stelle platziert ist?

Vielen Dank

1
Ich habe versucht, die Argumente '-geometry + 0 + 0' zu entfernen. Es schien das gleiche Ergebnis zu erzeugen. Jonathan Hayward vor 7 Jahren 0

1 Antwort auf die Frage

1
Anaksunaman

Zwei Fragen:

  • Sie sollten den Befehl convert nicht für diesen Vorgang benötigen.

  • Ihre Bilder sind rückwärts im Befehl (das erste Bild ist das Bild, das auf dem zweiten überlagert wird, dh der Autor und der Hintergrund).

Dies sollte die gewünschten Ergebnisse liefern:

composite author.png -gravity center -geometry +0+0 \ background.jpg -gravity center -geometry +0+0 result.jpg 

Wahrscheinlich benötigen Sie wahrscheinlich nicht einmal die zweite Kombination aus Schwerkraft und Geometrie:

composite author.png -gravity center -geometry +0+0 background.jpg result.jpg 
Genau wie gewünscht! Jonathan Hayward vor 7 Jahren 0
Genial! Froh das zu hören. =) Anaksunaman vor 7 Jahren 0