PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘Bildbearbeitung’ tag

Text in Bild einfügen: ImageLabeler

with 14 comments

Heute gibts ein kleines Script, das zu einem gegebenen Bild einen Text hinzufügt, also beispielsweise einen Copyright-Hinweis rechts unten einfügt. Im Bild rechts sieht man wie ich den Text ‚PHPGangsta‘ in der Position rechts unten eingefügt habe, mit roter Schriftfarbe und weißer Umrandung.

Es ist die erste Version mit Basisfunktionalität. Aktuell können beeinflusst werden:

  • Text
  • Schriftfarbe
  • Hintergrundfarbe
  • Schriftgröße
  • Dateiausgabeformat (jpg, png, gif) und Qualität
  • Positionen: alle 4 Ecken, zentriert oder individuelle X/Y Koordinaten
  • Rahmen um den Text und Hintergrundfarbe

Auf Github findet ihr das Projekt ImageLabeler, die Klasse könnt ihr einfach benutzen:

<?php

require_once 'ImageLabeler.php';

$imageLabeler = new ImageLabeler();
$imageLabeler->setFilePath('/path/to/image.jpg')
             ->setText('PHPGangsta')
             ->render();
echo $imageLabeler->getRenderedFilePath();
// outputs something like /tmp/63D6.tmp.png

Es gibt aber noch einige weitere Einstellungsmöglichkeiten:

<?php

require_once 'ImageLabeler.php';

$imageLabeler = new ImageLabeler();
$imageLabeler->setFilePath('/path/to/image.jpg')
             ->setText('PHPGangsta')
             ->setPosition(ImageLabeler::POSITION_BOTTOM_CENTER)
             ->setFontSize(3)
             ->setFormat('png')
             ->setFontColor('0000ff')
             ->setBackgroundColor('ffffff')
             ->setTargetFileQuality(80)
             ->setBoxBorderThickness(2)
             ->setBoxBorderColor('ff0000')
             ->render()
             ->outputRenderedImage();

Man könnte sich natürlich noch weitere Dinge vorstellen wie TTF-Schriftarten, Transparenz, Rotation usw.

Eine Frage zum Schluss noch: Sollte ich solche Klassen in meinen eigenen Namespace packen? Nachteil wäre dass die Klassen dann bei PHP < 5.3 angepasst werden müssen…

Written by Michael Kliewe

August 22nd, 2011 at 9:39 am