Icon-Generator

Ich habe jetzt eine Seite gefunden, die so ziemlich genau das hat, was ich suche:

http://creatr.cc/backgrounds/

Ich habe auch mittlerweile angefangen ein Script zu bauen, bei dem ich Farben auswählen kann und per ajax ein gdlib-Script aufrufe.

Aber wahrscheinlich müsste ich jetzt ein Cross-Post im PHP-Forum starten. Da das eigentliche Problem wohl jetzt eher beim Fine-Tuning mit GDlib liegt.
 
Ja, es gibt leider noch so einige Ansatzschwierigkeiten.

Ich hatte mir jetzt ein Script rausgesucht, mit dem man Farbverläufe realisieren kann und eines um runde Ecken einzubauen. Aber irgendwie wollen die Scripte nicht so richtig ineinander greifen.

Ich kann auch fast nicht glauben, dass es tatsächlich derart kompliziert ist, so essenzielle Grafik-Attribute mit GDLib umzusetzen.
Gibt es da keine vorgefertigten Funktionen?

Das ganze soll am Ende als PNG-Grafik ausgegeben werden.

Ein anderes Problem habe ich noch mit dem Browser-Cache. Wenn ich per Ajax ein Bild erzeugen lassen, sobald jemand eine Farbe ausgewählt hat, dann läd er das Bild mit dem richtigen Farbwert, mache ich das aber ohne neuladens des Browsers nocheinmal, läd er mir wieder das selbe Bild wie vorher. Schaue ich mir dann die Grafik-Infos an, sehe ich, dass das Bild eigentlich auf Grund der neuen Farbe ganz anders ausschaut, aber der Browser anscheinend, durch den gleichen Namen des Bildes eines aus dem Cache lädt.


Liebe Grüße
Micha
 
Also, das mit dem Browser-Cach hat nix mit PHP zu tun. Keine Ahnung ob mal über Javascript das aushebeln kann.

Du ast also noch Probleme mit den Scripten, dass da etwas falsch ist.
Nun, ohne die passenden Ausschnitte aus deinem PHP-Code kann dir hier niemand helfen.
 
Schon klar, dass das Cache-Problem kein Php-Problem ist. Aber hätte ja sein können, dass das jemand spontan weiß.

Nur kurz als Rahmeninfo, ich programmiere schon seit Jahren mit PHP / MySql und bin auch in Sachen JS in Verbindung mit jQuery recht konform. Allerdings habe ich die Bilderlib erst einige wenige Male genutzt. In der Regel lediglich um einfach PNG-Dateien aus Text zu erzeugen.

Allerdings habe ich jetzt das Problem, dass ich wie bereits geschrieben Farbverläufe und Runde-Ecken erzeugen will. Und da hakt es ersteinmal beim Grundverständnis.
Deswegen hier die Frage, gibt es eine Funktion um das zu bewerkstelligen, oder muss man dafür tatsächlich ein komplizierteres Script schreiben, wenn dem so ist, würde ich meine Code-Schnipsel mal posten.

Liebe Grüße und vielen Dank für die Hilfe.

Micha
 
Okey, das Cach-Problem habe ich schonmal in den Griff bekommen.

1. bei der Ajax Anfrage ein: cache: false
2. bei der Ausgabe des Bildes:

$rnd = md5($rand . time());
echo '<img src="images/col.png?'.$rnd.'">';

Durch die angehängte rnd-Zahl läd er das Bild immer neu, ohne Caching.
 
Hmm, eigentlich müsstest du dein Vorhaben auch fast ausschließlich mit JS und HTML5 realisieren können. Statt der Bilderlib von PHP kannst du auch das Canvas - Element verwenden.
 
Naja, im Endeffekt sollen die Bilder tatsächlich als Bilder abgespeichert werden. Und HTML5 ist leider absolut nicht anwendbar. Dazu gibt es zu viele Nutzer, die keine neuen Browser nutzen.

Aber ich habe jetzt eine wirklich super Lösung gefunden. Für alle, die stunden-, wochen, tagelang nach einer Lösung mit GDLib suchen - vergesst es! Nehmt lieber ImageMagic.

Wo GdLib ewig lange Scripte braucht, die nur bedingt funktionieren, um abgerundete Kanten und Farbverläufe darzustellen, bietet ImageMagic dafür direkt Funktionen.

Beispiel:

Code:
// Create gradiant

exec("convert -size {$width}x{$height} gradient:$gradiantFirst-$gradiantLast images/gradiant.png");

// Round the corners and add the text

$cmd = " -size {$width}x{$height} xc:none -fill white ".
" -draw 'roundRectangle 0,0 $width,$height 15,15' images/gradiant.png ".
" -compose SrcIn -composite";

exec("convert $cmd images/rounded_gradiant.png ");

unlink("./images/gradiant.png");

// Output: picture with random-ID for the caching-problem with ajax

$rand = rand(0, 1000);
$rnd = md5($rand . time());

echo '<img src="./images/rounded_gradiant.png?'.$rnd.'">';
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück