【发布时间】:2016-09-04 09:17:57
【问题描述】:
我正在尝试为我开发的网站创建员工海报。我的目标是从服务器上任何文件类型(.png、.gif、.jpeg 等)的目录中获取图像并将其复制到另一个生成的图像上,然后将其输出到浏览器。
问题是我使用:
$final_image = imagecreatefrompng("large_background.png");
用于制作最终图像,出于某种原因,如果我添加类型为 jpeg、gif 等的个人资料图像(任何不是 jpeg 的类型),它就不起作用。图像永远不会出现在输出中。但是,如果我使用 png,它确实可以工作。
为了解决这个问题,我尝试将图像转换为 png,然后从中创建一个 png,如下面的代码所示。不幸的是,它不起作用。个人资料图片仍然没有显示在背景上。
// get image from database
$image_from_database = could be a .png, .jpeg, .gif, etc.
// get the image from the profile images directory
$path = "profile_images/".$image_from_database;
// create a png out of the image
$image = imagecreatefrompng(imagepng($path));
// add the $image to my larger $final_image (which is a png)
imagecopy($final_image, $image, $x, $y, 0,0, $height, $width);
imagepng($final_image, $ouput_url);
...
谁能告诉我为什么这不起作用?我的个人资料图片未显示在最终图片的输出中。
我的问题,
- 这条线
imagecreatefrompng(imagepng(...));甚至可能吗?本质上,我想将任何类型的图像转换为 png,然后从中创建一个 png。
【问题讨论】:
-
正如我所说,如果我这样做,当我将
imagecopy放到 png 上时它不会出现。 -
您是否阅读过
imagepng期望的参数以及返回的内容?或者它实际上在做什么? -
所以你提议:
$image = imagecreatefrompng(imagepng(imagecreatefromjpeg($path)));? -
$image = imagecreatefrompng($path);用于 png 图像,$image = imagecreatefromjpeg($path);用于 jpeg 图像,$image = imagecreatefromgif($path);用于 gif 图像。
标签: php image image-processing image-manipulation