Dynamische Bilder - Spamschutz
Einklappen
X
-
Hallo,
bitte schildere dein Problem ausführlich. Leider ist bisher nicht zu erkennen, wie du die Bilder erzeugst oder ob du nur fertige Bilder ineinander blendest. Wenn du es mit PHP machst, poste die relevanten Code-Schnipsel.
Da es offenbar unterschiedliche Server sind, vergleiche bitte deren Version und lass es uns wissen und prüf gleich noch die Version der jeweilig verwendeten GD Bibliothek.
Gruß,
Anja[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
-
Okay.
Also Lokal sind es folgende Werte laut phpinfo()
Code: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
Code:GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.3.9 GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XBM Support enabled
Mein Code mit dem ich dieses Bild baue:
Ich rufe eine Funktion auf:
PHP-Code://Farbwerte / Zufall
$from = rand(50,205).','.rand(50,205).','.rand(100,205).',0';
$to = rand(100,200).','.rand(100,200).','.rand(1,100).','.rand(1,100);
//Höhe/Breite
$height = 50;
$steps = 100;
$step_width = 1;
gradient ($from, $to, $height, $steps, $step_width);
PHP-Code:function gradient($from, $to, $height, $steps, $step_width) {
session_start();
$zahl1 = rand(1,9);
$operation = rand(1,2);
if($operation == 1)
{
$zahl2 = rand(1,9);
$op_z = "+";
$erg = $zahl1 + $zahl2;
}
else
{
$zahl2 = rand(1,$zahl1);
$op_z = "-";
$erg = $zahl1 - $zahl2;
}
$_SESSION['spamschutz'] = $erg;
$im = imagecreatetruecolor(++$steps * $step_width, $height);
imagesavealpha($im, true);
imagealphablending($im, false);
imagefill($im, 0, 0, imagecolorallocatealpha($im, 225, 225, 225, 127));
$from = explode(',', $from);
$to = explode(',', $to);
$diff = array();
for ($i = 0; $i < 4; $i++) {
$diff[$i] = ($from[$i] - $to[$i]) / $steps;
}
for ($step = 0; $step < $steps; $step++) {
for ($i = 0; $i < 4; $i++) {
$rgb[$i] = round($from[$i] - $diff[$i] * $step);
if ($i < 3) {
if ($rgb[$i] > 255) {
$rgb[$i] = 255;
}
} elseif ($rgb[3] > 127) {
$rgb[3] = 127;
}
}
$col = imagecolorallocatealpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
$col1 = imagecolorallocatealpha($im, 250, 250, 250, 250);
$col2 = imagecolorallocatealpha($im, 1, 1, 1, 1); //schwarz
imageline($im, 0, 0, 0, 50, $col2);
imageline($im, 0, 0, 100, 0, $col2);
imageline($im, 99, 0, 99, 50, $col2);
imageline($im, 0, 49, 100, 49, $col2);
imageline($im, 1, 1, 1, 50, $col2);
imageline($im, 1, 1, 99, 1, $col2);
imageline($im, 98, 1, 98, 50, $col2);
imageline($im, 1, 48, 99, 48, $col2);
$string = $zahl1 ." ".$op_z." ".$zahl2;
imagettftext($im, 20, 0, 5, 35, $col1, './font/courbd.ttf', $string);
for($i = 0; $i < 20; $i++)
{
imagesetpixel($im, rand(2,96), rand(3,48),$col2);
}
for($i = 0; $i < 20; $i++)
{
imagesetpixel($im, rand(2,96), rand(3,48),$col1);
}
imagefilledrectangle($im, $step * $step_width, 0, ($step + 1) * $step_width - 1, $height, $col);
}
header('Content-type: image/png');
header( "Expires: 01 Jan 2009 07:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header( "Pragma: no-cache" );
imagepng($im);
imagedestroy($im);
}
Beachte: Dumm ist, wer Dummes tut.
Kommentar
-
Hallo,
ich hab's jetzt nicht genauer betrachtet, aber warum benutzt du kein Alphablending?PHP-Code:imagealphablending($im, false);
Gruß,
Anja[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
Kommentar