PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


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

14 Responses to 'Text in Bild einfügen: ImageLabeler'

Subscribe to comments with RSS or TrackBack to 'Text in Bild einfügen: ImageLabeler'.

  1. Hallo Michael,

    Schöner wäre doch dein Logo als Watermark darüber zu legen, oder nicht?

    PHP5.2 ist laut php.net nicht länger supported. Wir halten unsere Tools zwar aktuell noch 5.2 kompatibel, ändern das aber mit dem nächsten Hauptrelease.

    Für den ganzen Pixelspaß nutze ich übrigens am liebsten ImageMagick (via Imagick PECL).

    Rodney Rehm

    22 Aug 11 at 09:59

  2. will ich so ein PHP Elefanten 🙁

    Wasrun

    22 Aug 11 at 10:22

  3. @Rodney Rehm: So eine Klasse sollte auch schnell geschrieben sein nehme ich an, man hat deutlich weniger Variablen. Vielleicht habe ich ja mal eine Stunde Zeit, oder jemand anders…

    @Wasrun: Gedulde dich noch ein paar Tage…

    Michael Kliewe

    22 Aug 11 at 10:30

  4. Hallo Michael,

    habe das „Watermarking“ mal aus meine ImageProcessing Utility rausgezogen: https://gist.github.com/1161975

    wie kommt man denn an so einen (ele)ph(p)ant ran? 😉

    Rodney Rehm

    22 Aug 11 at 11:03

  5. Ich nehm lieber Imagick, weil es sich irgendwie schneller anfühlt als GD. Ob es stimmt, hab ich aber nie getestet. 🙂

    Oliver

    22 Aug 11 at 15:58

  6. ich will auch so einen Elefanten……

    Martin

    23 Aug 11 at 08:57

  7. @Michael

    weil du sagst ich soll mich ein paar Tage gedulden, heißt das du kannst welche auftreiben?

    Wasrun

    23 Aug 11 at 10:34

  8. @Wasrun & Martin & Rodney: Ja, ich bekomme bald wieder welche und kann euch dann welche schicken. Ein paar Tage dauerts allerdings.

    Michael Kliewe

    23 Aug 11 at 10:59

  9. ich hätte auch interesse an einem

    Uwe

    23 Aug 11 at 11:38

  10. Ich wäre extrem glücklich über so einen Elefanten 🙂

    Wünsche mir den schon lange für meine Sammlung.

    Martin Keckeis

    23 Aug 11 at 12:25

  11. So ein ElePHPant hat schon was. Suche auch schon lange nach einer möglichkeit so einen zu bekommen…

    DrDreistein

    23 Aug 11 at 16:16

  12. ich finde diesen Elephanten auch total süß, wenn es eine Möglichkeit gibt, einen solchen zu bekommen, wäre ich auch dabei 😀

    außerdem vielen Dank für den Artikel!

    Thomas

    26 Aug 11 at 14:41

  13. Michael Kliewe

    9 Sep 11 at 20:52

  14. hey Michael 😀 sage mal wie binde ich das script richtig ein ich bekomme immer nur eine .png datei aber keine neue ich steige leider nicht dran lang 🙁

    Michael

    13 Mrz 18 at 08:48

Leave a Reply

You can add images to your comment by clicking here.