我有一个很酷的代码片段,除了一件事情以外,效果很好。
代码将采用我想要添加到现有图片的图标。我可以把它定位在我想要的地方!这正是我需要做的。
然而,关于安置问题,我只关注一件事。
代码“起始位置”(在主图像上:navIcons.png)来自右下角。
我有两个变量:$ move_left = 10; &安培; $ move_up = 8;。 所以,我可以从右下角将icon.png 10px左侧和8px向上定位。
我真的很想从图像的左上角开始定位,所以我真正将图标10px移动到正确的位置。从主图像的左上角开始向下8px。
有人可以查看我的代码,看看我是否只是错过了一些反转起始位置的东西?
<?php
function attachIcon($imgname)
{
$mark = imagecreatefrompng($imgname);
imagesavealpha($mark, true);
list($icon_width, $icon_height) = getimagesize($imgname);
$img = imagecreatefrompng('images/sprites/navIcons.png');
imagesavealpha($img, true);
$move_left = 10;
$move_up = 9;
list($mainpic_width, $mainpic_height) = getimagesize('images/sprites/navIcons.png');
imagecopy($img, $mark, $mainpic_width-$icon_width-$move_left, $mainpic_height-$icon_height-$move_up, 0, 0, $icon_width, $icon_height);
imagepng($img); // display the image + positioned icon in the browser
//imagepng($img,'newnavIcon.png'); // rewrite the image with icon attached.
}
header('Content-Type: image/png');
attachIcon('icon.png');
?>
对于那些想知道为什么我甚至打扰这样做的人。简而言之,我喜欢将16x16图标添加到单个图像中,同时使用css显示该单个图标。这确实涉及我下载图像(精灵)和打开photoshop,添加新图标(定位它),并将其重新上传到服务器。不是一场大规模的考验,而只是玩得开心。
答案 0 :(得分:0)
bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
将src_im的一部分复制到dst_im上,从x,y坐标src_x,src_y开始,宽度为src_w,高度为src_h。定义的部分将被复制到x,y坐标,dst_x和dst_y。 (PHP.net
$move_right = 10;
$move_down = 8;
imagecopy($img, $mark, $move_right, $move_down, 0, 0, $icon_width, $icon_height);
答案 1 :(得分:0)
已经达到我需要的定位,我只需要不要使int $ dst_x / $ dst_y复杂化。
我在那里放了简单的整数,它有效。