の中央に画像や場所のサイズを変更し、私はそれを動作させることはできません。画像は390ピクセル以上高い場合、それはそれのサイズを変更した場合、はキャンバス
チェック〜390ピクセルの高さにしてください。
は、白いキャンバスの追加300ピクセル幅の広い高400ピクセルで、その後、その中央に画像を配置します。
私のコードは次のとおり
$im = new imagick("test.jpg");
$imageprops = $im->getImageGeometry();
$width = $imageprops['width'];
$height = $imageprops['height'];
if($height > '390'){
$newHeight = 390;
$newWidth = (390/$height) * $width;
}else{
$newWidth = $imageprops['width'];
$newHeight = $imageprops['height'];
}
$im->resizeImage($newWidth,$newHeight, imagick::FILTER_LANCZOS, 0.9, true);
$canvas = new Imagick();
$canvas->newImage(300, 400, 'white', 'jpg');
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 100, 50);
$canvas->writeImage("test-1.jpg");
画像が生成されるときに大規模なものは、何らかの理由で高い388個のピクセルにスケーリングされ、小さなものは、それらの元の寸法に任されます。合成画像に付加100,50と大きな画像では動作しないものの
キャンバス上に配置することは常に正しくありません。
画像のほとんどは、背が高くて細いですが、彼らは背が高いよりも幅が広く、そのいくつかがあります。
私は間違っていますか?
おかげで、
リック
あなたはそれが簡単に白にCENTER、背景色に重力を設定し、300x400の白いキャンバスに自分のイメージを置くために、 'setImageExtentを()'を使用するかもしれません。 –
'if($ height> 390)'引用符なし。 –