Author Topic: Mit Php Text auf einem Bild schreiben  (Read 17348 times)

0 Members and 1 Guest are viewing this topic.

Offline qBass17

  • Addicted member
  • ******
  • Posts: 1.800
  • I ♥ 4I
    • View Profile
Mit Php Text auf einem Bild schreiben
« on: December 15, 2011, 05:04:53 PM »
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):
<?php
define
('ROOT_PATH''../');
include(
ROOT_PATH.'inc/define.php');

$date date('H-i-s'); 
$rand rand(099);
$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$image0000$width$height$width$height);
   
$black imagecolorallocate($image_p7673105);
   
$font FONT_PATH.'3.ttf';
   
$font_size 20;
   
imagettftext($image_p$font_size12108217$black$font$WaterMarkText);
   if (
$DestinationFile<>'') {
  
	
imagejpeg ($image_p$DestinationFile100);
   } else {
  
	
header('Content-Type: image/jpeg');
  
	
imagejpeg($image_pnull100);
   };
   
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
define
('ROOT_PATH''../../');
include(
ROOT_PATH.'inc/define.php');

$date date('H-i-s'); 
$rand rand(099);
$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$image0000$width$height$width$height);
   
$black imagecolorallocate($image_p585858);
   
$font FONT_PATH_PARFUM.'4.ttf';
   
$font_size 30;
   
imagettftext($image_p$font_size, -10200420$black$font$WaterMarkText);
   if (
$DestinationFile<>'') {
  
	
imagejpeg ($image_p$DestinationFile100);
   } else {
  
	
header('Content-Type: image/jpeg');
  
	
imagejpeg($image_pnull100);
   };
   
imagedestroy($image);
   
imagedestroy($image_p);
};
?>

Was mache ich da falsch?

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: [Select]
                    <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]
« Last Edit: December 15, 2011, 06:06:23 PM by Sumale.nin »

Rembrandt

  • Guest
Re: Mit Php Text auf einem Bild schreiben
« Reply #1 on: December 15, 2011, 06:45:04 PM »
hast du schon überprüft ob die beiden Inputs über geben werden?

$WaterMarkText 
$_GET['texto'];
$WaterMarkTextx $_GET['textox'];

nein? dann setze das nach den beiden Variablen:
print_r($_GET);
dann siehst du ob und was an PHP übergeben wird.

die form mach mal so:
Code: [Select]
                    <form method='GET' action='convert/parfum/1.php'>
                      <label for="texto">Erstes Textfeld:<label>
                      <input type="text" id="texto" name="texto">
                      <label for="textox">Zweites Textfeld:<label>
                      <input type="text" id="textox" name="textox">
                      <input type="submit" value="Submit">
                    </form>

mfg Andi

Offline qBass17

  • Addicted member
  • ******
  • Posts: 1.800
  • I ♥ 4I
    • View Profile
Re: Mit Php Text auf einem Bild schreiben
« Reply #2 on: December 15, 2011, 08:25:28 PM »
Kann ich dir mal die FTP Daten zukommen lassen?
Es ist nicht Datenbank gebunden, sondern On-The-Fly.

Rembrandt

  • Guest
Re: Mit Php Text auf einem Bild schreiben
« Reply #3 on: December 15, 2011, 08:42:53 PM »
ja

Offline qBass17

  • Addicted member
  • ******
  • Posts: 1.800
  • I ♥ 4I
    • View Profile
Re: Mit Php Text auf einem Bild schreiben
« Reply #4 on: December 15, 2011, 08:46:36 PM »
Hat sich doch schon erldigt.
Ich habe die falschen Maße benutzt... sorry für die Frage dann hier.
Aber ich habe das einfach nicht gesehen bzw. übersehen.
Irgendwann sieht man einfach nichts mehr.

Rembrandt

  • Guest
Re: Mit Php Text auf einem Bild schreiben
« Reply #5 on: December 15, 2011, 08:52:35 PM »
ich sitze auch oft ewig vor einen hausgemachten problem, da ist es dann besser wenn man aufhört und am nächsten tag weitermacht, da dauert es dann meist nur minuten :)

mfg Andi

Offline qBass17

  • Addicted member
  • ******
  • Posts: 1.800
  • I ♥ 4I
    • View Profile
Re: Mit Php Text auf einem Bild schreiben
« Reply #6 on: December 15, 2011, 11:04:55 PM »
ja, das werde ich zukünftig auch machen.
Trotzdem Danke dir!!


---

Kann mir denn jemand verraten wie ich ein PNG Transparent bekomme?
Aktueller Code:
<?php

error_reporting
(E_ALL);

define('ROOT_PATH''../../');
include(
ROOT_PATH.'inc/define.php');

$date date('H-i-s');
$rand rand(099);
$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$image0000$width$height$width$height);
$font FONT_PATH_PARFUM.'jilsander.ttf';
$font_size_text 13;
$font_size_textx 40;
$color_text imagecolorallocate($image_p232754);
$color_textx imagecolorallocate($image_p23713628);
$transparents imagecolorallocate($image0x000xFF0x00);
imagettftext($image_p$font_size_text90120250$color_text$font$WaterMarkText); # Maße anpassen
imagettftext($image_p$font_size_textx90169250$color_textx$font$WaterMarkTextx); # Maße anpassen
imagecolortransparent($image$transparents);
if (
$DestinationFile<>'') {
imagepng ($image_p$DestinationFile9);
} else {
header('Content-Type: image/png');
imagepng($image_pnull9);
};
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/Transparentes-PNG-mit-PHP.258.artikel.html
Aber ich verstehe nicht wo das "black" hinkommen soll in meinem Code, da ich dieses String ja nicht verwende

Edit:
Erledigt
« Last Edit: December 16, 2011, 04:52:44 PM by Sumale.nin »

Dafina

  • Guest
Re: Mit Php Text auf einem Bild schreiben
« Reply #7 on: September 23, 2012, 10:53:10 AM »
Kann ich dir mal die FTP Daten zukommen lassen?
Es ist nicht Datenbank gebunden, sondern On-The-Fly.