在1和1主机上使用imagemagick在php中调整图像大小

问题描述:

I am running out of memory when allowing users to resize images of modern day 12MP or higher cameras. Even some pictures that are only 900kb in size take up a lot more room in memory because it's based on pixel size (i think) so ...

I have SSH access to a 1&1 shared server and I followed their instructions to upload imagemagick and configure/make/install it into a directory on my server. Now what do I have to do in php to do the same thing as

$originalImage = imagecreatefromjpeg($src);
$finalImage = imagecreatetruecolor($newWidth,$newHeight);
imagecopyresampled($finalImage, $originalImage, 0, 0, 0, 0, $newWidth, $newHeight, $originalWidth, $originalHeight);
imagejpeg($finalImage,$saveDest,$jpeg_quality);

the variables are hopefully self explanitory. I was trying to find my way through installing the imagick extension but i got really lost when i read about PECL and PEAR and I really don't want to screw up the working php installation somehow.

当允许用户调整现代12MP或更高版本相机的图像时,我的内存不足。 甚至一些尺寸仅为900kb的图片占用了更多的内存空间,因为它基于像素大小(我认为)所以... p>

我有一个1和1的SSH访问权限。 1个共享服务器,我按照他们的指示上传imagemagick并将其配置/制作/安装到我服务器上的目录中。 现在我需要在php中做什么来做同样的事情 p>

  $ originalImage = imagecreatefromjpeg($ src); 
 $ finalImage = imagecreatetruecolor($ newWidth,$ newHeight  ); 
imagecopyresampled($ finalImage,$ originalImage,0,0,0,0,$ newWidth,$ newHeight,$ originalWidth,$ originalHeight); 
imagejpeg($ finalImage,$ saveDest,$ jpeg_quality); 
  code  >  pre> 
 
 

变量有望自我解释。 我试图通过安装imagick扩展程序找到我的方式,但是当我读到PECL和PEAR时我真的迷失了,我真的不想搞砸了工作的php安装。 p> div>

exec('/path/to/your/home/imagemagick/installation/bin/convert '.$src.' -resize '.$newWidth.'x'.$newHeight.' '.$saveDest);

But make sure you have all variables coming from user site escaped. And $saveDest is writable by your webserver.

Changes are high that you run in to the same memory limit problems, couse apache/php is invoking a script which limits its memory usage to its parent.

Update php.ini file:

memory_limit = 2048M