Убираем фон у png изображений после преобразования через phpthumb
После преобразования изображения формата png через phpthumb исчезает прозрачность изображения.
Поиски по интернету привели к быстрому решению, прописать в настройках поворот на 1 градус ra=1
Но это работает корректно, если не происходит изменение размеров изображения.
При добавлении параметров для контроля размера изображения, при малых картинках появляются дополнительные прозрачные поля и увеличения размера изображения до указынных параметров.
Дальнейшие поиски привели к тому, что необходимо внести изменения в сам класс phpthumb на 1678 строке класса от modx 2.6.5 изменить последовательность строк и добавить условие.
ob_start();
$getimagesize = getimagesize($this->sourceFilename);
$GetImageSizeError = ob_get_contents();
ob_end_clean();
if (!is_null($this->dpi) && $this->ImageMagickSwitchAvailable('density')) {
// for vector source formats only (WMF, PDF, etc)
if (!is_array($getimagesize) || $getimagesize[2] != IMAGETYPE_PNG)
{
$commandline .= ' -flatten';
}
$commandline .= ' -density '.phpthumb_functions::escapeshellarg_replacement($this->dpi);
}
if (is_array($getimagesize)) {
$this->DebugMessage('getimagesize('.$this->sourceFilename.') SUCCEEDED: '.print_r($getimagesize, true), __FILE__, __LINE__);
} else {...
Источник: https://github.com/FLEXIcontent/flexicontent-cck/commit/f27a74bf0c840d9b9c9d7e05487d42bce302b586
Комментарии ()