在我的网站早期,我允许人们上传他们想要的任何大小的图片。我现在有客户端和服务器端的配置,将新图像限制在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
所以我想要的是:
我被困住了,我希望能得到任何帮助。
谢谢格雷格
发布于 2010-07-05 04:09:12
递归地遍历所有目录和子目录,寻找JPGs,当它找到一个
使用RecursiveDirectoryIterator和RecursiveIteratorIterator的组合,可能与RegexIterator一起使用。在这个网站上有一些例子。
计算出流动比率
没有必要。
将原始文件重命名为origional.jpg.old
见rename。
调整文件的大小,使其在高度/宽度上最大为2000 to,同时保持高宽比。
见Imagick::resizeImage或Imagick::scaleImage。
使用origional.jpg文件名将文件写入磁盘
Imagick::writeImage
检查新的origional.jpg是否是一个有效的快乐文件
没有必要。
如果它是一个愉快的文件,删除origional.jpg.old
见解链接。
https://stackoverflow.com/questions/3177155
复制相似问题