1

我有一个简单的脚本,可以在图像中添加图像。这是代码:

<?php

$im = imagecreatetruecolor(650, 400);
$stamp = imagecreatefrompng('test.png');

$red = imagecolorallocate($im, 209, 231, 244);
imagefill($im, 0, 0, $red);

$marge_right = 10;
$marge_bottom = 133;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) 
- $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
imagepng($im);
imagedestroy($im); 

?>

现在这会将测试图像放置在距离大图像右侧 10x 处,距离图像底部 133px 处。如何根据其高度垂直居中放置图像?

谢谢

4

2 回答 2

2

$marge_right并且$marge_bottom应该对应于源图像和目标图像之间(分别)水平和垂直大小的差异。

所以你需要这样计算差异:

$marge_right = abs($dest_sx-$src_sx);
$marge_bottom = abs($dest_sy-$src_sy);

abs如果您确定源大于源小于目标,则这是可选的。

于 2013-05-09T13:40:20.110 回答
-1

有一个强大的工具叫做五年级数学...

因为你有你的身高 imagecreatetruecolor(650, 400);

以及您在 $sx 和 $sy 中放置的图像的高度和宽度,这归结为简单的偏移计算以传递给 $marge_right 和 $marge_bottom

于 2013-05-09T13:38:01.840 回答