Imagemagick производит миниатюры низкого качества - PullRequest
0 голосов
/ 05 апреля 2019

Хорошо, только что заметил, что мой imagick производит размытые / некачественные миниатюры.Не могу найти кусок кода, который мне нужно исправить, чтобы сделать большие пальцы лучшего качества.Какие-либо предложения?Все это происходит в функции PHP ниже.Также ниже приведены 2 образца изображения.

try {

$image = new Imagick($picfile);

if ($image->getImageColorspace() == \Imagick::COLORSPACE_CMYK) {
 $image->transformimagecolorspace(\Imagick::COLORSPACE_SRGB);
}

Imagick::setResourceLimit (6, 1);


// hypothetical new h and w
$new_w = round($o_height * $maxwidth / $maxheight);
$new_h = round($o_width * $maxheight / $maxwidth);

$ratio=round(($o_width/$o_height), 2);

if($ratio < 1.25){$go_vertical=true;}

if($o_width > $o_height && !$go_vertical){ // horizontal
    $image->cropThumbnailImage($maxwidth, $maxheight);



    $image->writeImage($path); $pathe=1;
}

if($o_width <= $o_height || $go_vertical){ // vertical
    $image2 = new Imagick();

    $image2->newImage($new_w, $o_height+2, "white");


    $x = round(abs(($new_w - $o_width) / 2))-1;

    echo $mode." x=".$x." IMAGE (".$new_w.", ".$o_height.")<br />";
    $image2->compositeImage($image, imagick::COMPOSITE_DEFAULT, $x, 0);

    $image2->cropThumbnailImage($maxwidth, $maxheight);

    // Strip out unneeded meta data
    $image->stripImage();

    $image2->writeImage($path);
    $image2->destroy(); $pathe=2;
}
$image->destroy();    

Поскольку изображения непосредственно не вставляются сюда, вот ссылки:

Хороший пример: https://www.comfyco.com/temp/b/good.jpg

Плохой пример: https://www.comfyco.com/temp/b/bad.jpg

Здесь это не выглядит кардинально иначе, но на реальном сайте иногда это довольно плохо.Любой совет, какой параметр / строку добавить, чтобы эти миниатюры выглядели лучше?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...