如何在PHP中调整图像资源大小?

问题描述:

我有一个脚本可以创建一个图像,其高度取决于递归树的深度。预先计算图像的高度会很痛苦,因为我需要运行两次递归函数。因此,我想知道是否可以从我的唯一递归函数中调整图像大小。长话短说,我需要调整图像资源的大小,这有可能吗?例如,我怎样才能使下面的代码工作?谢谢!如何在PHP中调整图像资源大小?

//Create the image 
$image = imagecreatetruecolor(800, 100); 

//Change the image height from 100 to 1000 pixels 
imagecopyresized($image, $image, 0, 0, 0, 0, 800, 1000, 800, 100); 

//Set the header 
header('Content-Type: image/png'); 

//Output the image 
imagepng($image); 

//Destroy the image 
imagedestroy($image); 
+0

是否有一个原因,你不能运行你的递归函数,将数据存储在另一个数据类型,然后计算你的图像大小应该基于此? – 2012-07-25 14:32:54

+0

它可以完成,但我想我将不得不运行递归函数两次,首先获取并存储数据(例如,在数组中),然后计算图像大小。但也许不是,我正在考虑它,谢谢! – Sophivorus 2012-07-25 14:45:14

你的代码几乎是完美的,除非你不给它的源图像的工作。您需要$source = imagecreatefrompng("someimage.png");,然后在您的imagecopyresize中将源图像参数设置为$source

+0

我不知道我明白,不imagecreatetruecolor()返回imagecreatefrompng()将返回相同类型的数据? – Sophivorus 2012-07-25 14:41:32

+0

'imagecreatetruecolor'将创建您的“目标”图像,'imagecreatefrompng'将获得您的“源”图像。 – 2012-07-25 16:30:07

+0

ic ..好吧,我以不同的方式解决了我的问题,但我会将您的答案标记为正确,因为它似乎是正确的。谢谢! – Sophivorus 2012-07-25 18:10:40