все просто

Убираем фон у 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

Комментарии ()