phpbar.de logo

Mailinglisten-Archive

[php] "signatur" (textstring) in eine bilddatei schreiben

[php] "signatur" (textstring) in eine bilddatei schreiben

Daniel Haller daniel_haller at gmx.de
Mit Jan 5 02:07:47 CET 2005


Hi Sven,

> Teste das mal bei dir. Bei mir wird der Text in das Bild geschrieben.
> Wenn das klappt, müsste das Problem irgendwas mit dem Font oder den
> Berechnungen dort zu tun haben.

Tja, ich würde sagen: Volltreffer !
Es lag tatsächlich daran !!

Ich bin alles Zeile für Zeile durchgegangen,
und hab alles bzgl. der Schrift ersetzt, allena Variablen feste Werte
gegeben... und siehe da - es klappt !!

so siehts jetzt mal aus ;-) :
/**
* AddTextWatermark
* platziert einen geg. (einzeiligen) Textstring in geg. (JPG)Bilddatei
*/
function AddTextWatermark($SrcImgPath,$TxtString)      {

/* Allg. Variablen */
$FontType = 'proggyclean.gdf';
$PaddingHeight = 4;
$PaddingWidth = 8;
$transparency = 80;
$RGBValuesBG = array(174,171,182);
$RGBValuesFont = array(255,255,255);

/* Pruefen, ob Font vorhanden und Laden */
if(file_exists($FontType))    {
$FontType = imageloadfont($FontType);
} else {
return  FALSE;  }

/* Abmessungen d. Wasserzeichens festlegen */
$StringWidth = imagefontwidth($FontType) * strlen($TxtString)+$PaddingWidth;
$StringHeigth = imagefontheight($FontType) + $PaddingHeight;

/* Text- und Hintergrundfarbe,Handler fuer Wasserzeichen */
$StrImg = imagecreate($StringWidth,$StringHeigth);
$BackColor = imagecolorallocate($StrImg,RGBValuesBG[0],RGBValuesBG[1],RGBValuesBG[2]);
$TxtColor = imagecolorallocate($StrImg,$RGBValuesFont[0],$RGBValuesFont[1],$RGBValuesFont[2]);

/* Handler d. Textbildes mit Text versehen  */
imagestring($StrImg,$FontType,$PaddingWidth/2,$PaddingHeight/2,$TxtString,$TxtColor);

/* Handler vom Orginalbild erstellen */
$SrcImg = imagecreatefromjpeg($SrcImgPath);

/* Aus beiden Handlern ein Bild machen (StrImg in SrcImg einkopieren) */
imagecopymerge($SrcImg,$StrImg,0,0,0,0,$StringWidth,$StringHeigth,$transparency);

/* Neues Bild (Orginalbild mit Beschriftung) ueberschreiben */
imagejpeg($SrcImg,$SrcImgPath);

} // function AddTextWatermark

Vielen herzlichen Dank für Deine Hilfe !!

Grüße,
Daniel




php::bar PHP Wiki   -   Listenarchive