| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

09-05-2006, 18:38
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
Probleme mit GD library mit Texteingabe - header("Content-type: image/png")
hallo,
ich bin dabei, einen shirtcreator zu schreiben und habe eine alte version, die ich vor jahren mal mit freunden angefertigt habe wieder rausgekramt. dabei soll dem kunden die möglichkeit gegeben werden, einen text aufs shirt zu schreiben. ist denke ich klar.
nun habe ich beide shirtcreator (alt & neu) auf zwei verschiedenen servern... bei meinem alten funktioniert alles wunderbar, ich kann text eingeben und ich sehe ihn so, wie es sein soll!
bei meiner neuen version, die im prinzip nicht doll anders ist (nur an den xt shop angepasst) sehe ich keinen text, sondern ein leeres shirt. auch keine fehler...
wenn ich bei beiden in der header("Content-type: image/png") datei error_reporting(E_ALL) reinschreibe und das content-type auskommentiere und mir dann die grafik per rechte maustaste und "grafik anzeigen" anzeigen lasse, dann sehen sie beide identisch aus.
ich sitze seit tagen davor und mir fällt einfach nicht ein, woran es liegen kann!... hat partout einer eine spontane idee, woran es liegen kann?
danke und grüße,
marco
|

09-05-2006, 19:16
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Hmm...
Register_globals?
Unterschiedliche PHP-Versionen?
Als Erstes phpinfo()s vergleichen.
|

09-05-2006, 20:00
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
register_globals sind bei beiden servern jeweils auf on gesetzt...
die php versionen:
server, wo es funktioniert: PHP Version 4.4.2RC2-dev
server, wo es nicht funktioniert: PHP Version 4.4.2
gibts da große unterschiede?
die GD librarys:
server, wo es funktioniert:
gd
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
server, wo es nicht funktioniert:
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
|

10-05-2006, 10:04
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
weiß keiner einen rat?
|

10-05-2006, 10:31
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
evtl. holst du das bild aus dem cache? aber ohne die seite oder den code zu kennen, wird es schwierig, dir zu helfen.
__________________
-
|

10-05-2006, 10:42
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
hier der code vom server, wo es nicht funktioniert! .. auf dem anderen sind lediglich die querys anders.
PHP-Code:
<?PHP
/*header("Content-type: image/png");*/
error_reporting(E_ALL);
include('includes/application_top.php');
$sid = $_GET['sid'];
$seite = $_GET['seite'];
$picture = $_GET['bild'];
$product = $_GET['pID'];
$queryTmp = xtc_db_query("SELECT textfarbe1,textfarbe2,textfarbe3,textgroesse1,textgroesse2,textgroesse3,text1,text2,
text3,schrift1,schrift2,schrift3 FROM creator_tmp_param WHERE session='$sid' AND seite='$seite'");
$recordTmp = xtc_db_fetch_array($queryTmp);
$queryFont1 = xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift1]'");
$recordFont1 = xtc_db_fetch_array($queryFont1);
$schrift1 = $recordFont1['file'];
$queryFont2 = xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift2]'");
$recordFont2 = xtc_db_fetch_array($queryFont2);
$schrift2 = $recordFont2['file'];
$queryFont3 = xtc_db_query("SELECT file FROM creator_schriften WHERE id='$recordTmp[schrift3]'");
$recordFont3 = xtc_db_fetch_array($queryFont3);
$schrift3 = $recordFont3['file'];
(!$recordTmp['textgroesse1']) ? $size1 = 15 : $size1 = $recordTmp['textgroesse1'];
(!$recordTmp['textgroesse2']) ? $size2 = 15 : $size2 = $recordTmp['textgroesse2'];
(!$recordTmp['textgroesse3']) ? $size3 = 15 : $size3 = $recordTmp['textgroesse3'];
$text1 = $recordTmp['text1'];
$text2 = $recordTmp['text2'];
$text3 = $recordTmp['text3'];
$farbe1_firByte = hexdec(substr($recordTmp['textfarbe1'],0,2));
$farbe1_secByte = hexdec(substr($recordTmp['textfarbe1'],2,2));
$farbe1_thiByte = hexdec(substr($recordTmp['textfarbe1'],4,2));
$farbe2_firByte = hexdec(substr($recordTmp['textfarbe2'],0,2));
$farbe2_secByte = hexdec(substr($recordTmp['textfarbe2'],2,2));
$farbe2_thiByte = hexdec(substr($recordTmp['textfarbe2'],4,2));
$farbe3_firByte = hexdec(substr($recordTmp['textfarbe3'],0,2));
$farbe3_secByte = hexdec(substr($recordTmp['textfarbe3'],2,2));
$farbe3_thiByte = hexdec(substr($recordTmp['textfarbe3'],4,2));
$querydruck = xtc_db_query("SELECT breite,oben,links FROM products WHERE products_id='$product'");
$arrDruck = xtc_db_fetch_array($querydruck);
$width_total = getimagesize("http://www.unitedshop24.de/multishop/shop_files/1/images/
product_images/original_images/".$picture);
$topfirst = $arrDruck['oben']+$size1;
$topsecond = $topfirst+$size2+4;
$topthird = $topsecond+$size3+4;
$left = $arrDruck['links'];
$width = $arrDruck['breite'];
$Grafikdatei = "http://www.unitedshop24.de/multishop/shop_files/1/images/product_images/original_images/".$picture;
$im = ImageCreateFromJPEG($Grafikdatei);
$color1 = ImageColorAllocate ($im, $farbe1_firByte, $farbe1_secByte, $farbe1_thiByte);
$color2 = ImageColorAllocate ($im, $farbe2_firByte, $farbe2_secByte, $farbe2_thiByte);
$color3 = ImageColorAllocate ($im, $farbe3_firByte, $farbe3_secByte, $farbe3_thiByte);
function TextBreite($texthöhe,$fontfile,$textzeile) {
$ts = imagettfbbox($texthöhe,0,$fontfile,$textzeile);
$ts_diff = $ts[2] - $ts[0]; // x2 - x1;
return $ts_diff;
}
function MZT($texthöhe,$fontfile,$textzeile,$farbe,$top,$left,$width) {
global $im;
$TS = imagettfbbox($texthöhe,0,"fonts/".$fontfile,$textzeile);
$dx = abs ($TS[2]-$TS[0]);
$dy = abs ($TS[5]-$TS[3]);
$x = ((($left*2)+$width) - $dx )/2;
//$y = ($top - $dy ) + $dy;
ImageTTFText($im, $texthöhe, 0, $x, $top, $farbe, "fonts/".$fontfile, $textzeile);
}
if($recordTmp['text1']) {
$laenge1 = TextBreite($size1,"fonts/".$schrift1,$text1);
while($laenge1 >= $width) {
$text1 = substr($text1,0,-1);
$laenge1 = TextBreite($size1,"fonts/".$schrift1,$text1);
ImageLine ($im, $left, $arrDruck['oben'], $left, $arrDruck['oben']+$size1, $color1);
ImageLine ($im, $left+$width, $arrDruck['oben'], $left+$width, $arrDruck['oben']+$size1, $color1);
}
MZT ($size1,$schrift1,$text1,$color1,$topfirst,$left,$width);
}
if($recordTmp['text2']){
$laenge2 = TextBreite($size2,"fonts/".$schrift2,$text2);
while($laenge2 >= $width){
$text2 = substr($text2,0,-1);
$laenge2 = TextBreite($size2,"fonts/".$schrift2,$text2);
ImageLine ($im, $left, $arrDruck['oben']+$size1, $left, $topsecond, $color2);
ImageLine ($im, $left+$width, $arrDruck['oben']+$size1, $left+$width, $topsecond, $color2);
}
MZT ($size2,$schrift2,$text2,$color2,$topsecond,$left,$width);
}
if($recordTmp['text3']){
$laenge3 = TextBreite($size3,"fonts/".$schrift3,$text3);
while($laenge3 >= $width){
$text3 = substr($text3,0,-1);
$laenge3 = TextBreite($size3,"fonts/".$schrift3,$text3);
ImageLine ($im, $left, $arrDruck['oben']+$size2, $left, $topthird, $color3);
ImageLine ($im, $left+$width, $arrDruck['oben']+$size2, $left+$width, $topthird, $color3);
MZT ($size3,$schrift3,$text3,$color3,$topthird,$left,$width);
}
ImagePNG ($im);
ImageDestroy ($im);
?>
//EDIT:
hier funktionierts:
http://www.marcokruger.de/blueprint/dev/index.php
einfach textilien, tshirts und shirt weiß ... entschuldigt die aufmachung.. *g ist der alte und wirklich nur zum testen da!
natürlich noch text eingeben
und hier funktionierts nicht:
http://shirtcreator-test.unitedshop2...D=454&div=text
Geändert von MarcoZap (10-05-2006 um 10:53 Uhr)
|

10-05-2006, 10:51
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
1. bitte code umbrechen => s. regeln
2. wie rufst du das bild in der seite auf?
3. hast du mal kontrollausgaben in der fkt MZT gemacht?
- werden alle werte übergeben?
- hast du eine ausgabe, wenn du einen text & font manuell einsetzt?
- hast du probiert, den font mit einem absoluten pfad anzusprechen?
__________________
-
|

10-05-2006, 10:55
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
Warning: imagettfbbox(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 70
Warning: imagettfbbox(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 78
Warning: imagettftext(): Could not read font in /is/htdocs/67897/www.intermezzo-werbung.de/multishop/creator_artikelImg.php on line 83
ist das, was ich bekomme bei "grafik anzeigen"
__________________
-
|

10-05-2006, 10:55
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
das bild rufe ich hier auf:
if($text1 || $text2 || $text3){
eval("\$textfile_bit.=\"".html_gettemplate("creator_textfile_bit")."\";");
}
creator_textfile_bit:
<div id='thumb_text1' style="top:135px; left:223px; filter  ropShadow(color=#CCCCCC, offx=2, offy=2)">
<img src='creator_artikelImg.php?pID=$product&sid=$sid&seite=$picture&bild=$pic' border='0'>
</div>
das andere probiere ich mal grad aus! danke
|

10-05-2006, 10:56
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
siehe einen post über deinem
__________________
-
|

10-05-2006, 10:57
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
das bekomme ich schon gar nicht mehr angezeigt, habs dann wohl wirklich im cache zu liegen.
zeile 70:
$ts = imagettfbbox($texthöhe,0,$fontfile,$textzeile);
zeile 78:
$TS = imagettfbbox($texthöhe,0,"fonts/".$fontfile,$textzeile);
zeile 83:
ImageTTFText($im, $texthöhe, 0, $x, $top, $farbe, "fonts/".$fontfile, $textzeile);
|

10-05-2006, 11:16
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
- setz den absoluten pfad zum font ein, dann sollte es auch klappen
- erweitere die parameter-liste beim bildaufruf noch um einen timestamp, dann sollte das cache-problem auch weg sein
__________________
-
|

10-05-2006, 11:23
|
|
MarcoZap
Newbie
|
|
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 13
|
|
ich dank dir!
grüße ...
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|