Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将图像集中在上传的图像上 < >我有用户上传的方块图像(可变维数,但总是平方),我想把我自己的图像(也就是说,正方形和固定尺寸)覆盖在正方形图像的中间,不管大小。p>_Php_Image_Gd - Fatal编程技术网

在PHP中将图像集中在上传的图像上 < >我有用户上传的方块图像(可变维数,但总是平方),我想把我自己的图像(也就是说,正方形和固定尺寸)覆盖在正方形图像的中间,不管大小。p>

在PHP中将图像集中在上传的图像上 < >我有用户上传的方块图像(可变维数,但总是平方),我想把我自己的图像(也就是说,正方形和固定尺寸)覆盖在正方形图像的中间,不管大小。p>,php,image,gd,Php,Image,Gd,我知道我可以使用GD和尺寸标注,但是有没有一种方法可以用更少的代码行自动将其居中 我不需要任何花哨的东西,只需要把一张图片放在另一张图片的中心。我不知道你是在问如何在GD中实现这一点,还是GD的替代方案。如果要使用GD库,可以使用imagecopy()函数并尝试以下操作: <?php $uploaded = imagecreatefrompng("../image.png"); //user uploaded $watermark = imagecreatefrompng("../logo

我知道我可以使用GD和尺寸标注,但是有没有一种方法可以用更少的代码行自动将其居中


我不需要任何花哨的东西,只需要把一张图片放在另一张图片的中心。

我不知道你是在问如何在GD中实现这一点,还是GD的替代方案。如果要使用GD库,可以使用
imagecopy()
函数并尝试以下操作:

<?php
$uploaded = imagecreatefrompng("../image.png"); //user uploaded
$watermark = imagecreatefrompng("../logo.png"); //watermark or logo

$x = imagesx($uploaded) / 2 - imagesx($watermark) / 2;
$y = imagesy($uploaded) / 2 - imagesy($watermark) / 2;

imagecopy($uploaded, $watermark, $x, $y, 0, 0, imagesx($watermark), imagesy($watermark));

header("Content-type: image/png");
imagepng($uploaded);

imagedestroy($uploaded);
imagedestroy($watermark);

我不知道您是在问如何在GD中实现这一点,还是GD的替代方案。如果要使用GD库,可以使用
imagecopy()
函数并尝试以下操作:

<?php
$uploaded = imagecreatefrompng("../image.png"); //user uploaded
$watermark = imagecreatefrompng("../logo.png"); //watermark or logo

$x = imagesx($uploaded) / 2 - imagesx($watermark) / 2;
$y = imagesy($uploaded) / 2 - imagesy($watermark) / 2;

imagecopy($uploaded, $watermark, $x, $y, 0, 0, imagesx($watermark), imagesy($watermark));

header("Content-type: image/png");
imagepng($uploaded);

imagedestroy($uploaded);
imagedestroy($watermark);

少于什么?另外,您是否打算重新缩放所讨论的两个图形中的任何一个?你需要alpha通道/不透明度吗?嗯,现在我只是把大图像的尺寸切成两半,在图像中添加一半的像素,在那个位置插入。不需要什么花哨的东西。是的,差不多就是这么做的。比什么少?另外,您是否打算重新缩放所讨论的两个图形中的任何一个?你需要alpha通道/不透明度吗?嗯,现在我只是把大图像的尺寸切成两半,在图像中添加一半的像素,在那个位置插入。不需要任何花哨的东西。是的,基本上就是这样做的。这是我的问题,有没有比GD更好的方法,用类似于你在答案中提出的东西(除以2,并用它作为坐标)来做呢。我很感激你的回答。不是真的。。。记住,你也不需要每次想链接到一个php脚本,你可以保存脚本生成的内容并覆盖上一个图像,这样唯一可访问的图像就是它。这就是计划,但我想看看是否有比在保存前将两幅图像的尺寸都切成两半更好的方法。为什么会有更好的方法?这是更好的方法,任何其他看起来更好的方法都只是复制上述功能。想想看,你是如何找到图像的中心的?这是一个非常简单的函数…我只是想看看是否有类似于
centerImage()
函数的函数用于某个我从未见过的库。我真的很感谢你的回答。这基本上是我的问题,有没有比GD更好的方法来做类似于你在回答中提出的东西(除以2,并用它作为坐标)。我很感激你的回答。不是真的。。。记住,你也不需要每次想链接到一个php脚本,你可以保存脚本生成的内容并覆盖上一个图像,这样唯一可访问的图像就是它。这就是计划,但我想看看是否有比在保存前将两幅图像的尺寸都切成两半更好的方法。为什么会有更好的方法?这是更好的方法,任何其他看起来更好的方法都只是复制上述功能。想想看,你是如何找到图像的中心的?这是一个非常简单的函数…我只是想看看是否有类似于
centerImage()
函数的函数用于某个我从未见过的库。我真的很感谢你的回答。