循环图像文件夹并调整它们的大小

时间:2017-07-01 12:36:32

标签: php imagemagick

我正在尝试循环一个充满图像的文件夹,并在另一个文件夹中调整它们的副本。当我尝试使用其中一个时,它工作正常但是当我循环它时,它不起作用。不知道我做错了什么。我没有任何错误。

<?php
include_once 'dbconfig.php';

?>

    <?php

// exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/10114-20170610_211655_182.jpg -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/10114-20170610_211655_182.jpg');

$sql = "SELECT * FROM tbl_uploads";
$result_set = mysql_query($sql);

while ($row = mysql_fetch_array($result_set))
    {
    $pic = $row['file'];

    // echo $pic;

    exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/$pic -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/$pic');
    }

?>

2 个答案:

答案 0 :(得分:3)

exec()来电中,您应该使用字符串连接或双引号来让口译员识别您的$pic变量。

exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/' . $pic . ' -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/' . $pic);

exec("/usr/bin/convert /home/forbes11/public_html/gallery/uploads/$pic -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/$pic");

答案 1 :(得分:1)

不确定PHP和数据库访问的作用,但如果您有一个目录,其中包含要调整大小的JPEG图像并将缩略图保存在新目录中,则可以通过命令行轻松完成使用 ImageMagick &#39; mogrify命令:

mogrify -path /output/directory -resize 340x340 *.jpg

如果文件的名称来自 MySQL ,您可以将其传递到mogrify上的stdin

mysql_query_listing_filenames | mogrify -path /output/directory -resize 340x340 *.jpg @-