1

WideImage が組み込まれた CMS を使用しており、これを変更する余地はありませんが、300x300 の画像を生成する必要がある状況に直面しました。

ただし、約 100x100 の jpg および png 形式でアップロードされた画像は、さまざまなレベルの透過性を備えています。

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 に答える