php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.02.2008, 09:16  
Johnnii360
Gast
 
Beiträge: n/a
Standard [GDLib] Bild über Text legen

Hallo zusammen!

Ich möchte das Captcha-Script das ich hier habe noch ein wenig verfeinern und noch ein wenig sicherer gestalten. Ich möchte mittels imagecreate() eine leere Kollage erzeugen, und dann mittels imagettftext() den Captcha-Code drauf klopfen.

So sieht das funktionierende Script dann aus: (so weit bin ich gekommen)

PHP-Code:
<?php
header 
("Content-type: image/png");
$im imagecreate (15030) or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color ImageColorAllocate ($im255255255);
$text_color ImageColorAllocate ($im515151);

imagettftext($im1903025$text_color"../2008/Johnnys Welt/include/fonts/BRLGORC0F""123abc");

imagepng($im);
?>
Dieses funktioniert einwandfrei. Wenn ich aber nun das transparente Bild - wie im folgenden Code - darüberlege, dann wird mir nur das Bild angezeigt.

PHP-Code:
<?php
header 
("Content-type: image/png");
$im imagecreate (15030) or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color ImageColorAllocate ($im255255255);
$text_color ImageColorAllocate ($im515151);

imagettftext($im1903025$text_color"../2008/Johnnys Welt/include/fonts/BRLGORC0F""123abc");

$bild ImageCreateFromPNG("../2008/Johnnys Welt/images/main/captcha.png");
imagecopy($im$bild000015030);

imagepng($im);
?>
Ich habe auch noch ein paar andere Kombis probiert. Hat aber leider alles nichts gebracht.

Ich möchte auch gerne, dass das Bild auch die Transparenz in voller Blüte verwendet, sodass ich auch abgerundete Kanten mit Antialias verwenden kann.

Ich würde mich über Eure Hilfe sehr freuen.
Vielen Dank im Voraus!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.02.2008, 10:07  
Erfahrener Benutzer
 
Registriert seit: 07.12.2007
Beiträge: 103
PHP-Kenntnisse:
Fortgeschritten
Varon befindet sich auf einem aufstrebenden Ast
Standard

Also erstmal solltest du anstelle von

imagecreate

imagecreatetruecolor
http://de2.php.net/manual/de/functio...etruecolor.php

verwenden.

Und wenn ich das richtig im Kopf habe müsste es dann mit

imagecopymerge
http://de2.php.net/manual/de/functio...ecopymerge.php

anstelle von

imagecopy

funktionieren.
__________________
Ich mag Schildkröten!
Varon ist offline   Mit Zitat antworten
Alt 07.02.2008, 10:58  
Johnnii360
Gast
 
Beiträge: n/a
Standard

Ne, funktioniert leider auch nicht.

PHP-Code:
<?php
header 
("Content-type: image/png");
$im imagecreatetruecolor(15030) or die ("Kann keinen neuen GD-Bild-Stream erzeugen");
$background_color ImageColorAllocate ($im255255255);
$text_color ImageColorAllocate ($im515151);

imagettftext($im1903025$text_color"../2008/Johnnys Welt/include/fonts/BRLGORC0F""123abc");

$bild imagecreatefrompng("../2008/Johnnys Welt/images/main/captcha.png");
imagecopymerge($im$bild000015030);

imagepng($im);
?>
Zitat:
Die Grafik "http://localhost/Testarea/temp20.php" kann nicht angezeigt werden, weil sie Fehler enthält.
  Mit Zitat antworten
Alt 07.02.2008, 11:37  
Erfahrener Benutzer
 
Registriert seit: 07.12.2007
Beiträge: 103
PHP-Kenntnisse:
Fortgeschritten
Varon befindet sich auf einem aufstrebenden Ast
Standard

Du gibst bei imagecopymerge einen Parameter zuwenig an.
Die Funktion benötigt einen mehr als imagecopy!
__________________
Ich mag Schildkröten!
Varon ist offline   Mit Zitat antworten
Alt 07.02.2008, 11:39  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

tjaaa hätte man jetzt ins manual geguckt, wenn einem die links doch schon gepostet werden...
cycap ist offline   Mit Zitat antworten
Alt 07.02.2008, 13:06  
Erfahrener Benutzer
 
Registriert seit: 25.02.2004
Beiträge: 1.524
Orolhawion
Standard

Zitat:
Zitat von OFN-Johnny
Ich möchte das Captcha-Script das ich hier habe [...] noch ein wenig sicherer gestalten.
offtopic, aber evtl. doch interessant: warum zeichencodes als captcha und sich somit soviel muehe machen die zeichen noch möglichst unleserlich darzustellen? nimm bilder von tieren (beispielsweise). du verlierst dabei noch nichtmal zwingend den vorteil bzgl. sprache.. ein beispiel gibts in meinem blog. hab das seit fast nem jahr im einsatz und keinen einzigen spameintrag (bei zigtausend versuchen, ich log das mit).
__________________
"die Mitte des Textes kann ja theor. mitten in einem Text liegen"

http://www.jagr.de/
Orolhawion ist offline   Mit Zitat antworten
Alt 07.02.2008, 14:42  
Johnnii360
Gast
 
Beiträge: n/a
Standard

Funktioniert nun halbwegs, danke!

Nur gibt's noch das Problem, dass bei imagecreatetruecolor() die imagecolorallocate() bei der Hintergrundfarbe nicht mehr ziehen.

Hier die Ausgaben:

Mit imagecreate():


Mit imagecreatetruecolor():


@Orolhawion: Ich kann's noch prima lesen. Hier wird nur die Schrift noch ein wenig mehr mit verschiedenen Grautönen "verpixelt". So haben's Scanengines noch ein Bisschen schwerer.
  Mit Zitat antworten
Alt 07.02.2008, 15:19  
Erfahrener Benutzer
 
Registriert seit: 25.02.2004
Beiträge: 1.524
Orolhawion
Standard

Zitat:
Zitat von Johnnii360
@Orolhawion: Ich kann's noch prima lesen. Hier wird nur die Schrift noch ein wenig mehr mit verschiedenen Grautönen "verpixelt". So haben's Scanengines noch ein Bisschen schwerer.
das beantwortet zwar meine frage nicht, aber ok. viel erfolg.
__________________
"die Mitte des Textes kann ja theor. mitten in einem Text liegen"

http://www.jagr.de/
Orolhawion ist offline   Mit Zitat antworten
Alt 07.02.2008, 15:46  
Johnnii360
Gast
 
Beiträge: n/a
Standard

Hab nun nochmal im imagecreatetruecolor() Teil nachgelesen und hab's nun mit dem ersten Schnipsel hinbekommen.

PHP-Code:
<?php
ini_set
('display_errors'1);
error_reporting(E_ALL);

header ("Content-type: image/png");

$im imagecreatetruecolor(15030);
imagesavealpha($imtrue);
$trans_colour imagecolorexactalpha($im255255255127);
imagefill($im00$trans_colour);

$text_color imagecolorallocate($im515151);

imagettftext($im1903025$text_color"BRLGORC0.TTF""123abc");

$bild imagecreatefrompng("captcha.png");
imagecopymerge($im$bild00001503050);


imagepng($im);
imagedestroy($im);
?>
Nur nächstes Problem: Nun ist die Schrift nicht mehr ohne Alpha bzw. ohne geglättete Kanten. ^^ Was nun?

Zitat:
Zitat von Orolhawion
Zitat:
Zitat von Johnnii360
@Orolhawion: Ich kann's noch prima lesen. Hier wird nur die Schrift noch ein wenig mehr mit verschiedenen Grautönen "verpixelt". So haben's Scanengines noch ein Bisschen schwerer.
das beantwortet zwar meine frage nicht, aber ok. viel erfolg.
Wäre auch eine Möglichkeit. Aber ich mache mir lieber so die Mühe. Jedem das Seine. Werde mir aber mal Deinen Tipp zu Herzen nehmen. Vielleicht bekomm' ich ja mal eine andere Idee dazu.

EDIT();
Okay, hab's mit dem Text hinbekommen. Danke nochmal an alle die mir geholfen haben.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Transparentes Bild über Bild legen *update gelöst* Broadcast PHP-Fortgeschrittene 11 04.02.2008 15:27
JavaScript/PHP: qooxdoo 0.7.1 - Teil 1 : Eine Einführung Zergling-new Tutorials 6 25.01.2008 10:41
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
Text um Bild herum Igäl HTML, Usability und Barrierefreiheit 4 16.02.2006 17:08
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
[Erledigt] Vertikale Ausrichtung von Text auf Rollover Bild HTML, Usability und Barrierefreiheit 2 16.11.2005 14:47
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
Designproblem: Text und Bild Sirke HTML, Usability und Barrierefreiheit 2 08.09.2005 14:59
text in bild mit zeilenumbruch PHP Tipps 2005-2 8 23.08.2005 09:02
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
mit php ein Bild in einem Text anzeigen und mit css designen scheibo PHP Tipps 2005 3 15.05.2005 13:48
[Erledigt] Text auf Bild PHP Tipps 2005 9 28.04.2005 15:05
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
Wie kann man Text als Bild ausgeben? PHP Tipps 2005 5 22.03.2005 10:13
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html bild über text legen, bild über text legen, php text über bild legen, css bild über text legen, bild mit text erzeugen gdlib, html text über bild legen, text über bild legen php, bild über text legen css, transparentes bild über text legen, gdlib zeilenumbruch, html bild über text, php schrift über bild legen, css \bild über text\, css text über bild legen, text über bild legen, html bild auf einen textr legen, php text auf bild legen, php ttf verpixelt, bild auf text legen, text über bild legen html

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.