1


我需要调整 7 张图像的大小并将其缝合在一起,因为我使用的是 ImageMagick,但它非常重并且需要很长时间才能执行。我可以使用其他更轻的库吗?或者也许我的代码是罪魁祸首:

<?php
header('Content-type: image/jpeg');

$thumb = new Imagick();
$thumb->newImage(128*7,128, 'black');
$thumb->borderImage( 'purple', 1, 1 );

$images = new Imagick(glob('*.jpg'));

$counter =0;
foreach($images as $image) {

    // Providing 0 forces thumbnailImage to maintain aspect ratio
    $image->thumbnailImage(128,128, true);
    $thumb->compositeImage($image,Imagick::COMPOSITE_DEFAULT, (128*$counter)+(64-$image->getImageWidth()/2),64-$image->getImageHeight()/2);//echo $image;

    $counter++;
}
$thumb->setImageFormat('jpeg');
echo $thumb;    

?>

更新:
对于 iPhone 应用程序,我决定在 iPhone 本身上进行大小调整和拼接(然后将结果上传到服务器以供将来使用)。

4

2 回答 2

1

我不使用imagick,而是使用带有php exec() 的Imagemagick 命令行,您可以使用define 作为“提示”来加快jpg 调整大小。我相信它只读取足够的输入图像来创建输出图像。

无论如何,几周前 Imagemagick 论坛上有一篇关于使用 Imagick 加快 jpg 调整大小的帖子,答案是:

$image = new Imagick();
$image->setOption('jpeg:size', '800x532');
$image->readImage('origional.jpg');

我不确定这在您的情况下如何工作,原始线程是: http ://www.imagemagick.org/discourse-server/viewtopic.php?f=10&t=20586&hilit=speed

于 2012-04-25T14:42:19.597 回答
0

由于我正在编写一个 iPhone 应用程序并且我在服务器上的资源很少,我决定在 iphone 端做“艰苦”的工作。

丹尼尔

于 2012-05-01T18:16:26.613 回答