| 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! |
 |
|

01-02-2005, 20:10
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
Gdlib Farbproblem
Hallo habe ein Gdlib Problem:
Im Roten Teil muss ein Fehler sein, der eingefügte Text erscheint nur in einem hässlichen gelbton.
Grüner Teil funktioniert, allerding ohne ttf die ich aber benötige.
Pink ist nicht relevant.
bei blau könnte ein Fehler vorliegen, habe aber keine Ahnung.
Bitte um eure Hilfe.
<? //EINSTELLUNG ANFANG
header('Content-type: image/jpeg');
$breite = 800;
$hoehe = 117;
$domain = "www.goa-fashion.de";
$firma = "GOA FASHION";
$bilddatei ="banner2.jpg";
$schriftgross = 10;
$schriftgross1 = 80;
$fontfile = 'tahoma.ttf';$fontsize = 40; $fontangle = 0;
$textlang = imagefontwidth($schriftgross)* strlen ($domain);
$textlang1 = imagefontwidth($schriftgross)* strlen($firma);
$schriftposx = ($breite-$textlang-10);
$schriftposy = $hoehe - ($schriftgross+10);
$image2 = imagecreatefromjpeg($bilddatei);
$image3 = imagecreatetruecolor ($breite,$hoehe);
$farbe = imagecolorallocate($image3,255,255,255);
$farbe2 = imagecolorallocate($image3,0,0,0);
imagerectangle ($image3,0,0,$breite,$hoehe,$farbe);
$image2x = getimagesize($bilddatei);
if ($image2x[0]>$image2x[1]){ $divs = $image2x[0]/$breite;
$y=intval($image2x[1]/$divs);
$x= $breite;
$x2 = ($breite-$x)/2;
$y2 = ($hoehe-$y)/2; }
else{ $divs = $image2x[1]/$hoehe; $x=intval($image2x[0]/$divs);
$y= $hoehe;
$x2 = ($breite-$x)/2;
$y2 = ($hoehe-$y)/2; }
imagecopyresized ($image3,$image2,$x2,$y2,0,0,$x,$y,$image2x[0],$image2x[1]);
imagestring ($image3,$schriftgross,$schriftposx+1,$schriftposy+1,$domain,$farbe2);
imagestring ($image3,$schriftgross,$schriftposx-1,$schriftposy-1,$domain,$farbe2);
imagestring ($image3,$schriftgross,$schriftposx+1,$schriftposy-1,$domain,$farbe2);
imagestring ($image3,$schriftgross,$schriftposx-1,$schriftposy+1,$domain,$farbe2);
imagestring ($image3,$schriftgross,$schriftposx,$schriftposy,$domain,$farbe);
imagettftext ($image3,$fontsize,$fontangle,$schriftposx+1,$schriftposy+1,$farbe2,$fontfile,$firma);
imagettftext ($image3,$fontsize,$fontangle,$schriftposx-1,$schriftposy-1,$farbe2,$fontfile,$firma);
imagettftext ($image3,$fontsize,$fontangle,$schriftposx+1,$schriftposy-1,$farbe2,$fontfile,$firma);
imagettftext ($image3,$fontsize,$fontangle,$schriftposx-1,$schriftposy+1,$farbe2,$fontfile,$firma);
imagettftext ($image3,$fontsize,$fontangle,$schriftposx,$schriftposy,$farbe,$fontfile,$firma);
ImageJpeg ($image3);
ImageDestroy($image3);
exit(); ?>
|

01-02-2005, 20:25
|
|
kapitaeniglo
PHP Senior
|
|
Registriert seit: Jul 2002
Beiträge: 1.474
|
|
imagettftext ( int im, int size, int angle, int x, int y, int col, string fontfile, string text)
wo definierst du $farbe2 und $farbe bei dir ...
|

01-02-2005, 20:26
|
|
kapitaeniglo
PHP Senior
|
|
Registriert seit: Jul 2002
Beiträge: 1.474
|
|
habs gesehen ...
aber :
imagecolorallocate
da muss der fehler liegen ...
|

01-02-2005, 20:37
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
Danke für die schnelle Antwort, kannst du mir bitte schreiben, wie das genau aussehen muss. Habe leider nicht viel Ahnung von Gdlib.
Gruss
Matthias
|

02-02-2005, 20:46
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
Schade das mir auch hier niemand weiterhelfen kann.
|

02-02-2005, 22:24
|
|
kapitaeniglo
PHP Senior
|
|
Registriert seit: Jul 2002
Beiträge: 1.474
|
|
schick mal nen link damit man sich das mal anschauen kann ...
gruss
iglo
|

03-02-2005, 00:22
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
http://www.goa-fashion.de/bild2.php
Mir geht es nicht um die Positionierung, nur um die Farbe.
Danke
Geändert von Morrers (03-02-2005 um 04:05 Uhr)
|

03-02-2005, 01:19
|
|
kapitaeniglo
PHP Senior
|
|
Registriert seit: Jul 2002
Beiträge: 1.474
|
|
mach mal zuerst den punkt hinter deiner grafik weg ...
schau ich mir morgen nochmal an
gruss
iglo
|

07-02-2005, 00:53
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
Unternehme noch einen letzten und verzweifelten Versuch eine Lösung für mein Problem zu bekommen.
|

07-02-2005, 01:33
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
schonmal das Beispiel aus der Manual ausprobiert?
Zitat:
Das Beispiel-Skript erzeugt eine schwarze GIF-Grafik von 400x30 Pixel mit dem weissen Text "Teste..." im TT-Font Arial.
PHP-Code:
<?php
Header ("Content-type: image/gif");
$im = imagecreate (400, 30);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
"Teste... Omega: Ω");
ImageGif ($im);
ImageDestroy ($im);
?>
|
Sollte es das nicht, dann ist deine GD-Library vielleicht kaputt....und wenn es funktioniert, dann ersetzt zuerst mal die Schriftart Arial durch deine und probier es dann nochmal aus, danach setzt deinen Text rein, danach änder die Größe. Dann änder die Start-Pixel fest, danach änder die Startpixel auf deine dynamisch-berechneten Variablen und ganz zum Schluss änder noch den Ausgabetyp der Datei von gif nach jpg (Header nicht vergessen!)
Wenn es irgendwann nicht mehr funktioniert, dann weißt du wo der Fehler liegt. Wenn es am Ende immernoch funktioniert, obwohl das Bild rauskommt, was du haben willst, dann guck mal, was an dem gebastelten anders ist als an dem da oben!
Das ist einfaches debugging, was jeder normale Programmierer machen würde und was DU jetzt mal alleine machen musst, weil ich keinen Bock habe mich noch weitere 10 Minuten damit zu beschäftigen...immerhin hab ich von der GD-Library auch keine Ahnung und müsste den Fehler erst suchen. Und da DU das Problem hast, darfst auch DU DEINEN Fehler suchen!
vielleicht interessant:
www.php.net/imagettftext
www.php.net/imagecolorallocate
btw. wenn du nicht mehr weiter weißt und wieder ankommst, poste mit den PHP-Tags!
Deine tollen Farben oben sind ja schön und gut, aber ich hab trotzdem nichts von dem PHP-Code verstanden....und ein paar Umbrüche im Code sind auch ganz nett, pro Zeile reicht normalerweise EINE Anweisung. Auch wenn es nur die Festlegung von default-Werten an mehrere Variablen sind, kann man das auf mehrere Zeilen verteilen.
Die Anweisungen in einem Block werden normalerweise auch eingerückt....und wenn du das mal alles machst, dann antworten vielleicht auch ein paar mehr, weil sie dann keine Probleme mehr damit haben den Code zu lesen/verstehen...
|

15-02-2005, 21:46
|
|
Morrers
Newbie
|
|
Registriert seit: Nov 2004
Beiträge: 6
|
|
Hallo
habe den Text gekürzt, bzw aus der PHP Dokumentation übernommen, müsste eigentlich alles leserlich sein.
Bitte um weitere Lösungsvorschläge da ich nicht mehr weiter komme.
http://www.goa-fashion.de/bild4.php
$bilddatei="banner.jpg";
$image = imagecreatefromjpeg ($bilddatei); // Get a background
$font = 'tahoma.ttf'; // Get a font
$textcolor = imagecolorallocate($image,0,0,0); // Set text color
$text1 = "shenko.homedns.org"; // Here is our text
imagettftext($image, 50, 0, 20, 50, $textcolor, $font, $text1); // Write the text with a font
header("Content-type: image/jpeg"); // Its a JPEG
imagejpeg($image,'',90); // Zap it to the browser
imagedestroy($image); // Memory Freeupage
Gruß
Matthias
|

10-06-2005, 16:06
|
|
Hehler
Newbie
|
|
Registriert seit: Oct 2002
Beiträge: 16
|
|
Truecolor gegen Truetype
Tach Leute ,
Ich zermarter mir seit Tagen am selben Problem des Hirn .
Ziel ist es , auf Grundlage eines Bildes (JPEG oder PNG) und eines Strings (sowie anderer Parameter , die hier nicht weiter relevant sind) ein neues Bild auszugeben - dabei soll der String mit TrueType auf das Bild geschrieben werden .
Ich hab mittlerweile folgendes rausbekommen :
- das Problem besteht bei TrueType Text in einem TrueColor Bild
- Textfarbe und Hintergrundfarbe stehen in direktem Zusammenhang
- der Blauwert hat keinerlei Auswirkungen
- wenn bei der Textfarbe der Rot- und/oder der Grünwert über 0 gesetzt wird , wird kein Text dargestellt
- der Rot- und Grünwert der Hintergrundfarbe bestimmen die Textfarbe , sie werden direkt übernommen
Da der Server mit dem ich leider arbeiten muss erst PHP 4.3 hat , kann ich keine Filter benutzen , die vielleicht(!) helfen könnten . Das einzige was mir noch einfällt , ist , ein temporäres Bild zu erstellen , den Text in schwarz reinzuschreiben , die Schwarzwerte Pixel für Pixel auszulesen und dann Pixel für Pixel über das Zielbild mit der gewünschten Farbe zu zeichnen , wobei der ausgelesene Schwarzwert als Opazität genutzt wird . Das müsste funktionieren , dürfte aber zu enormen Rechenzeiten führen . Hat jemand ne bessere Idee ? Hat jemand das mal unter PHP 5 getestet ?
Ich werd's am Wochenende auch nochmal unter PHP 5 testen ('n anderer Server , der hierfür allerdings derzeit nich zur Verfügung steht) .
Für jede Hilfe bin ich sehr dankbar ,
Hehler
__________________
"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker
|

10-06-2005, 16:43
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
ohne code und beispiellink kann wohl kaum jemand dein problem nachvollziehen.
__________________
-
|

10-06-2005, 20:53
|
|
Hehler
Newbie
|
|
Registriert seit: Oct 2002
Beiträge: 16
|
|
Eigentlich sollten die folgenden Schnipsel ja ein beinahe identisches Ergebnis liefern , wobei ersteres vielleicht etwas pixelig wäre :
PHP-Code:
header ("Content-type: image/png");
$im = imagecreate (400, 30);
$Weiss = imagecolorallocate ($im,255,255,255);
$Schwarz = imagecolorallocate ($im,0,0,0);
imagefill ($im,0,0,$Weiss);
imagettftext ($im,10,0,10,25,$Schwarz,"Schriften/Signature.ttf","Teste...");
imagepng ($im);
PHP-Code:
header ("Content-type: image/png");
$im = imagecreatetruecolor (400, 30); // <-- hier ist der Unterschied
$Weiss = imagecolorallocate ($im,255,255,255);
$Schwarz = imagecolorallocate ($im,0,0,0);
imagefill ($im,0,0,$Weiss);
imagettftext ($im,10,0,10,25,$Schwarz,"Schriften/Signature.ttf","Teste...");
imagepng ($im);
Allerdings liefert letzteres dieses Ergebnis (original .php) :
__________________
"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker
|

10-06-2005, 21:43
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
deine gd spinnt.
ich bekomme mit beiden codes exakt dasselbe ergebnis => php4.3 gd2 bundled
__________________
-
|
|
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
|