Ich habe zwei Websites (denselben Server), wo ein einfaches Rechteck mit ImagickDraw gezogen wird und es auf dem zweiten auf dem einen und schlägt mit dem Fehler gut funktionieren -ImagickDraw Rectangle - Bild kann nicht Fehler angezeigt
Das Bild " http://site_name/imagick/img?method=placeholder¶ms=258,150 "kann nicht angezeigt werden, weil es einen Fehler enthält.
Im Allgemeinen, was Code tut, ist es nimmt method
und params
(Höhe & Breite) von der URL und das Bild zeichnen.
$params = explode(",", $_GET["params"]);
$width = (int) $params[0]; //258
$height = (int) $params[1]; //150
if ($method == "placeholder") { //This is true $method is set to placeholder
$image = new Imagick();
$image->newImage($width, $height, "#707070");
$image->setImageFormat("png");
$x = 0;
$y = 0;
$size = 40;
$draw = new ImagickDraw();
while ($y < $height) {
$draw->setFillColor("#808080");
$points = array(
array("x" => $x, "y" => $y),
array("x" => $x + $size, "y" => $y),
array("x" => $x + $size * 2, "y" => $y + $size),
array("x" => $x + $size * 2, "y" => $y + $size * 2),
);
$draw->polygon($points);
$points = array(
array("x" => $x, "y" => $y + $size),
array("x" => $x + $size, "y" => $y + $size * 2),
array("x" => $x, "y" => $y + $size * 2),
);
$draw->polygon($points);
$x += $size * 2;
if ($x > $width) {
$x = 0;
$y += $size * 2;
}
}
$draw->setFillColor("#B0B0B0");
$draw->setFontSize($width/5);
$draw->setFontWeight(800);
$draw->setGravity(Imagick::GRAVITY_CENTER);
$draw->annotation(0, 0, $width . " x " . $height);
$image->drawImage($draw);
header("Content-type: image/png");
echo $image;
}
Ich habe den Puffer vor dem Header überprüft und es ist leer ob_clean()
auch versucht - immer noch nicht funktioniert.
In der Datei nach Leerzeichen gesucht, da ich festgestellt habe, dass sie die Bilddatei beeinflussen - aber es ist kein weißer Bereich vorhanden.
Irgendwelche Ideen, was hier oder überhaupt falsch sein könnte, um die Fehler zu verfolgen?
Vielleicht überprüfen Sie das Serverprotokoll auf Fehler, oder kommentieren Sie die 'header' und sehen Sie, was im Browser zurückgegeben wird. – emcconville
Danke für den Kommentar, aber der Fehler war das Leerzeichen selbst, als Antwort geschrieben. – jitendrapurohit