Mit Php Text auf einem Bild schreiben
Hallo zusammen,
ich habe eine kleines Problem.
Ich habe mir eine Routine geschrieben, mit der ich auf Bilder ein Text mittels Php schreiben kann.
Funktioniert (Einen text):
Aber wenn ich zwei Texte schreiben will geht das nicht, hier der Code:
Es wird nun gar kein Text mehr ausgegeben...
Was mache ich da falsch?
ich habe eine kleines Problem.
Ich habe mir eine Routine geschrieben, mit der ich auf Bilder ein Text mittels Php schreiben kann.
Funktioniert (Einen text):
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php
define('ROOT_PATH', '../');
include(ROOT_PATH.'inc/define.php');
$date = date('H-i-s');
$rand = rand(0, 99);
$SourceFile = IMAGE_PATH.'blank/10.jpeg';
$DestinationFile = IMAGE_PATH.'finish/'.$date.'_'.$rand.'.jpeg';
$WaterMarkText = $_GET['texto'];
watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile);
function watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$black = imagecolorallocate($image_p, 76, 73, 105);
$font = FONT_PATH.'3.ttf';
$font_size = 20;
imagettftext($image_p, $font_size, 12, 108, 217, $black, $font, $WaterMarkText);
if ($DestinationFile<>'') {
imagejpeg ($image_p, $DestinationFile, 100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);
};
imagedestroy($image);
imagedestroy($image_p);
};
?>
|
Aber wenn ich zwei Texte schreiben will geht das nicht, hier der Code:
Es wird nun gar kein Text mehr ausgegeben...
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php
define('ROOT_PATH', '../../');
include(ROOT_PATH.'inc/define.php');
$date = date('H-i-s');
$rand = rand(0, 99);
$SourceFile = IMAGE_PATH_PARFUM.'blank/parfum/1.jpg';
$DestinationFile = IMAGE_PATH_PARFUM.'finish/parfum/'.$date.'_'.$rand.'.jpg';
$WaterMarkText = $_GET['texto'];
$WaterMarkTextx = $_GET['textox'];
watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile);
function watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$black = imagecolorallocate($image_p, 58, 58, 58);
$font = FONT_PATH_PARFUM.'4.ttf';
$font_size = 30;
imagettftext($image_p, $font_size, -10, 200, 420, $black, $font, $WaterMarkText);
if ($DestinationFile<>'') {
imagejpeg ($image_p, $DestinationFile, 100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);
};
imagedestroy($image);
imagedestroy($image_p);
};
?>
|
Was mache ich da falsch?
So funktioniert das auch nicht
Die Weiterleitung sieht so aus:
?texto=Testing&textox=Text+2
Das sollte ja richtig sein.
Aber es kommt einfach kein text auf dem Bild
Hier erfolgt die Texteingabe:
Das Input sieht so aus:
[code] <form method='GET' action='convert/parfum/1.php'>
<label><input type="text" name="texto"></label><label><input type="text" name="textox"></label> <input type="submit" value="Submit"></form>[/php]
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php
define('ROOT_PATH', '../../');
include(ROOT_PATH.'inc/define.php');
$date = date('H-i-s');
$rand = rand(0, 99);
$SourceFile = IMAGE_PATH_PARFUM.'blank/parfum/1.jpg';
$DestinationFile = IMAGE_PATH_PARFUM.'finish/parfum/'.$date.'_'.$rand.'.jpg';
$WaterMarkText = $_GET['texto'];
$WaterMarkTextx = $_GET['textox'];
watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile);
function watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$black = imagecolorallocate($image_p, 58, 58, 58);
$font = FONT_PATH_PARFUM.'4.ttf';
$font_size = 30;
imagettftext($image_p, $font_size, -10, 200, 420, $black, $font, $WaterMarkText);
imagettftext($image_p, $font_size, 12, 100, 320, $black, $font, $WaterMarkTextx);
if ($DestinationFile<>'') {
imagejpeg ($image_p, $DestinationFile, 100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);
};
imagedestroy($image);
imagedestroy($image_p);
};
?>
|
Die Weiterleitung sieht so aus:
?texto=Testing&textox=Text+2
Das sollte ja richtig sein.
Aber es kommt einfach kein text auf dem Bild
Hier erfolgt die Texteingabe:
Das Input sieht so aus:
[code] <form method='GET' action='convert/parfum/1.php'>
<label><input type="text" name="texto"></label><label><input type="text" name="textox"></label> <input type="submit" value="Submit"></form>[/php]
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sumale.nin« (15. Dezember 2011, 18:06)
und was is damit: FONT_PATH (vorher) und FONT_PATH_PARFUM (nachher)? und IMAGE_PATH_PARFUM (vorher ohne PARFUM)
stimmen diese daten alle noch?
du zeigst uns hier 2 unterschiedliche dateien, mit der einen soll es klappen und mit der anderen nicht.. und man sieht immerwieder änderungen... hmm..
und die dateiendung jpg und jpeg?...
€dit: mach ruhig
stimmen diese daten alle noch?
du zeigst uns hier 2 unterschiedliche dateien, mit der einen soll es klappen und mit der anderen nicht.. und man sieht immerwieder änderungen... hmm..
und die dateiendung jpg und jpeg?...
€dit: mach ruhig
|
Achtung: Dirk Kántor ist unterwegs! Er verteilt gerne Verwarnungen ohne vorher darüber diskutiert zu haben. |
Danke an Dirk!
Problem wurde gelöst.
Kann mir denn jemand verraten wie ich ein PNG Transparent bekomme?
Aktueller Code:
Das ist aber im Hintergrund immer noch schwarz
Ich habe mich versucht hier dran zu orientieren: http://www.webmaster-eye.de/Transparente…58.artikel.html
Aber ich verstehe nicht wo das "black" hinkommen soll in meinem Code, da ich dieses String ja nicht verwende
Edit://
Erledigt!
Problem wurde gelöst.
Kann mir denn jemand verraten wie ich ein PNG Transparent bekomme?
Aktueller Code:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php
error_reporting(E_ALL);
define('ROOT_PATH', '../../');
include(ROOT_PATH.'inc/define.php');
$date = date('H-i-s');
$rand = rand(0, 99);
$SourceFile = IMAGE_PATH_PARFUM.'blank/parfum/1.png';
$DestinationFile = IMAGE_PATH_PARFUM.'finish/parfum/'.$date.'_'.$rand.'.png';
$WaterMarkText = $_GET['texto'];
$WaterMarkTextx = $_GET['textox'];
watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile);
function watermarkImage ($SourceFile, $WaterMarkText, $WaterMarkTextx, $DestinationFile) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefrompng($SourceFile);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$font = FONT_PATH_PARFUM.'jilsander.ttf';
$font_size_text = 13;
$font_size_textx = 40;
$color_text = imagecolorallocate($image_p, 23, 27, 54);
$color_textx = imagecolorallocate($image_p, 237, 136, 28);
$transparents = imagecolorallocate($image, 0x00, 0xFF, 0x00);
imagettftext($image_p, $font_size_text, 90, 120, 250, $color_text, $font, $WaterMarkText); # Maße anpassen
imagettftext($image_p, $font_size_textx, 90, 169, 250, $color_textx, $font, $WaterMarkTextx); # Maße anpassen
imagecolortransparent($image, $transparents);
if ($DestinationFile<>'') {
imagepng ($image_p, $DestinationFile, 9);
} else {
header('Content-Type: image/png');
imagepng($image_p, null, 9);
};
imagedestroy($image);
imagedestroy($image_p);
};
?>
|
Das ist aber im Hintergrund immer noch schwarz
Ich habe mich versucht hier dran zu orientieren: http://www.webmaster-eye.de/Transparente…58.artikel.html
Aber ich verstehe nicht wo das "black" hinkommen soll in meinem Code, da ich dieses String ja nicht verwende
Edit://
Erledigt!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Sumale.nin« (16. Dezember 2011, 16:52)
Ähnliche Themen
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
1.6.1 BiLd neber Schriftzug
(28. Februar 2010, 21:10)
-
Web | Programmierung »-
[PHP] Text ind Bild umwandeln mit eigener Font
(21. September 2009, 20:46)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Frage zu IMGR oder L
(17. August 2008, 15:51)
-
Web | Programmierung »-
Boxover
(28. Februar 2008, 12:16)


