首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP和ImageMagick对大容量图像进行调整

用PHP和ImageMagick对大容量图像进行调整
EN

Stack Overflow用户
提问于 2010-07-05 03:56:29
回答 1查看 1.7K关注 0票数 0

在我的网站早期,我允许人们上传他们想要的任何大小的图片。我现在有客户端和服务器端的配置,将新图像限制在2000 limit,同时维护原始图像比率。

因此,从旧的配置中,我有一个包含需要缩小的大映像的目录堆,我想在服务器端批量地这样做(由于客户端带宽的限制),对于我的生命,我无法解决这个问题。我意识到这会导致服务器端CPU较高,所以我会在几天内分组完成。

由于主机内存的限制,我不能使用GD进行缩放,所以我有ImageMagick的用处。

我将在1批中进行分组的示例如下所示:

/图片/ 01 / 101 / abc.jpg

/图片/ 01 / 101 / random.jpg

/图片/ 01 / 101 / randomfile.jpg

/图片/ 01 / 184 / random.jpg

/图片/ 01 / 184 / photo.jpg

/图片/ 03 / 372 / randomnumber.jpg

/图片/ 03 / 372 / randomanything.jpg

所以我想要的是:

  • 当找到一个- 时,递归遍历所有目录和子目录寻找JPGs。
    • 计算出流动比率
    • 将原始文件重命名为origional.jpg.old
    • 调整文件的大小,使其在高度/宽度上最大为2000 to,同时保持高宽比。
    • 使用origional.jpg文件名将文件写入磁盘
    • 检查新的origional.jpg是否是一个有效的快乐文件
      • 如果它是一个愉快的文件,删除origional.jpg.old

  • 然后处理下一个文件/文件夹。

我被困住了,我希望能得到任何帮助。

谢谢格雷格

EN

回答 1

Stack Overflow用户

发布于 2010-07-05 04:09:12

递归地遍历所有目录和子目录,寻找JPGs,当它找到一个

使用RecursiveDirectoryIteratorRecursiveIteratorIterator的组合,可能与RegexIterator一起使用。在这个网站上有一些例子。

计算出流动比率

没有必要。

将原始文件重命名为origional.jpg.old

rename

调整文件的大小,使其在高度/宽度上最大为2000 to,同时保持高宽比。

Imagick::resizeImageImagick::scaleImage

使用origional.jpg文件名将文件写入磁盘

Imagick::writeImage

检查新的origional.jpg是否是一个有效的快乐文件

没有必要。

如果它是一个愉快的文件,删除origional.jpg.old

解链接

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3177155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档