affichée J'ai deux sites (même serveur) où un simple rectangle est dessiné à l'aide ImagickDraw et fonctionnent très bien sur l'une et échoue sur la deuxième avec l'erreur -ImagickDraw Rectangle - image ne peut pas être erreur
L'image " http://site_name/imagick/img?method=placeholder¶ms=258,150 "ne peut pas être affiché car il contient une erreur.
Fondamentalement, ce code est de prendre method
et il params
(hauteur & largeur) de l'URL et dessiner l'image.
$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;
}
J'ai vérifié la mémoire tampon avant-tête et il est vide aussi essayé ob_clean()
- ne fonctionne toujours pas.
Vérifié pour les espaces blancs dans le fichier que j'ai trouvé qu'il affecte le fichier image - mais il n'y a pas d'espace blanc présent.
Des idées ce qui pourrait être mauvais ici ou de toute façon pour suivre les erreurs?
Peut-être vérifier le journal du serveur pour les erreurs, ou commenter le 'header' et voir ce qui est retourné dans le navigateur. – emcconville
Merci pour le commentaire, mais l'erreur était l'espace lui-même, posté comme une réponse. – jitendrapurohit