1

我们正在使用内置 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);

然而,这显然只是在画布上添加了一个白色背景,我无法从他们的文档中弄清楚如何使其透明。

谢谢

4

1 回答 1

0

怎么样:

$image = WideImage::loadFromFile($this->local_path);
$resized_image = $image->resizeCanvas(300, 300, 0, 0);

您可以指定新画布中图像的 X 和 Y 位置以及其宽度和高度。$image->resizeCanvas(300, 300, "center", "center")效果很好。

于 2016-05-26T15:13:20.343 回答