我们正在使用内置WideImage的CMS,无法改变这一点,但是我们遇到了需要生成300x300图像的情况。
然而,以jpg和png格式上传的大约100x100的图像具有不同的透明度。
我正在尝试创建一个300x300的画布,并将100x100图像放在其中 - 但我希望画布保持透明,并将图像放在顶部以保持透明度。
我有
$image = WideImage::loadFromFile( $this->local_path );
$canvas = WideImage::createTrueColorImage(300, 300);
$canvas_bg = $canvas->allocateColor(255, 255, 255);
$canvas->fill(0, 0, $canvas_bg);
$resized_image = $canvas->merge($image);
然而,这显然只是在画布上添加了白色背景,我无法从他们的文档中找出如何使其透明。
由于
答案 0 :(得分:0)
怎么样:
$image = WideImage::loadFromFile($this->local_path);
$resized_image = $image->resizeCanvas(300, 300, 0, 0);
您可以在新画布中指定图像的X和Y位置及其宽度和高度。 $image->resizeCanvas(300, 300, "center", "center")
效果很好。