Sonderzeichen ins Bild bringen. ♣♥♦♠
KraKi
- php
Moin moin,
also ich versuchte die Spielkartensymbole ♣, ♥, ♦ und ♠ auf eine Bild-Resurce zu bringen. Die einfachste Möglichkeit schien mir zu sein mittels chr() und imagestring() eben diese Zeichen zu schreiben.
Dank der ord()-Funktion konnte ich herausfinden, dass die Ordnungszahlen 38 und Folgende sind... scheint aber doch nicht zu stimmen, denn dabei erhalte ich das und-Zeichen (&).
Die Frage ist also: Wie bewege ich mein Script dazu mit die Spielkarten-Symbole auf mein Bild (das natürlich eine Spielkarte wird) zu zeichnen?
Als letzte Option bleibt natürlich noch selber zeichnen (mit imageline etc.) oder die Zeichen als Resurcen/Dateien zu hinterlegen und ein zu fügen. Aber eine Text-Variante wäre mir lieber und einfacher.
Schönen Dank und Gruß.
Notiz an mich selbst: Nein, Strg+S bedeutet nicht "send"
Ich konnte in der Zwischenzeit das Problem mit imagefilledpolygon lösen können. Für den Fall, dass jemand mal das selbe Problem hat und diesen Beitrag im Archiv findet hier nun meine Lösung:
function polycreate ($Zeichen , $cx , $cy) {
unset ($Polygon);
if ($Zeichen == 0) { //Karo
$Polygon[] = $cx;
$Polygon[] = $cy-6;
$Polygon[] = $cx+4;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy+6;
$Polygon[] = $cx-4;
$Polygon[] = $cy;
}
elseif ($Zeichen == 1) { //Herz
$Polygon[] = $cx;
$Polygon[] = $cy-2;
$Polygon[] = $cx+2;
$Polygon[] = $cy-5;
$Polygon[] = $cx+3;
$Polygon[] = $cy-5;
$Polygon[] = $cx+5;
$Polygon[] = $cy-1;
$Polygon[] = $cx+5;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy+5;
$Polygon[] = $cx-5;
$Polygon[] = $cy;
$Polygon[] = $cx-5;
$Polygon[] = $cy-1;
$Polygon[] = $cx-3;
$Polygon[] = $cy-5;
$Polygon[] = $cx-2;
$Polygon[] = $cy-5;
}
elseif ($Zeichen == 2) { //Pik
$Polygon[] = $cx;
$Polygon[] = $cy-5;
$Polygon[] = $cx+5;
$Polygon[] = $cy;
$Polygon[] = $cx+2;
$Polygon[] = $cy+3;
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx+1;
$Polygon[] = $cy+5;
$Polygon[] = $cx+2;
$Polygon[] = $cy+5;
$Polygon[] = $cx-2;
$Polygon[] = $cy+5;
$Polygon[] = $cx-1;
$Polygon[] = $cy+5;
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx-2;
$Polygon[] = $cy+3;
$Polygon[] = $cx-5;
$Polygon[] = $cy;
}
elseif ($Zeichen == 3) { //Kreuz
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx+2;
$Polygon[] = $cy;
$Polygon[] = $cx+4;
$Polygon[] = $cy-2;
$Polygon[] = $cx+6;
$Polygon[] = $cy;
$Polygon[] = $cx+4;
$Polygon[] = $cy+2;
$Polygon[] = $cx+2;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy+3;
$Polygon[] = $cx+2;
$Polygon[] = $cy+5;
$Polygon[] = $cx-2;
$Polygon[] = $cy+5;
$Polygon[] = $cx;
$Polygon[] = $cy+3;
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx-2;
$Polygon[] = $cy;
$Polygon[] = $cx-4;
$Polygon[] = $cy+2;
$Polygon[] = $cx-6;
$Polygon[] = $cy;
$Polygon[] = $cx-4;
$Polygon[] = $cy-2;
$Polygon[] = $cx+2;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy;
$Polygon[] = $cx;
$Polygon[] = $cy-2;
$Polygon[] = $cx-2;
$Polygon[] = $cy-4;
$Polygon[] = $cx;
$Polygon[] = $cy-6;
$Polygon[] = $cx+2;
$Polygon[] = $cy-4;
}
return($Polygon);
}
Aufgerufen wird das ganze z.B. so:
$Poly = polycreate( rand(0,3) , 50 , 50 );
$Polyzahl = round(count($Poly)/2);
imagefilledpolygon ( $im , $Poly , $Polyzahl , 0 );
Oder im Refferenz-Stil von php.net:
array polycreate ( int zeichen, int cx, int cy )
Diese Funktion kreiert einen array, der ein imagepoly oder imagefilledpoly-taugliches Polygon enthält. Dabei werden die typischen Spielkartensymbole erzeugt, sie sind 10 bis 12 Pixel groß. Mit zeichen bestimmten Sie welches Zeichen erzeugt werden soll (0 = Karo; 1 = Herz; 2 = Pik und 3 = Kreuz). Mit cx und cy bestimmen Sie den Mittelpunkt der Grafik.