我们最近决定重新设计使用150x150缩略图的旧应用。新拇指的大小为250x250。现在我必须更改之前条目创建的所有拇指。
用于创建新缩略图的功能是php的imagecopyresampled
。
您是否建议使用php或任何其他更本地的os语言/软件调整所有旧缩略图的大小,以便在本地更快地调整它们的大小? (软件必须支持copyresampled
函数或类似结果的东西。)
此外,作业本身有点复杂,因为在通过文件进行迭代时必须排除一些文件夹。
level 1: company folder
level 2: company property folder, company products folder
level 3: there are images that have to be resized inside company property folder.
company 1
company 2
company 3
----company 3 property
--------image1.jpg (original size)
--------image1_thumb.jpg (old 150 thumb)
--------image2.jpg
--------image2_thumb.jpg
----company 3 products (folder also includes images but they should not be resized)
我还可以使用另一种方式在属性database
中查找图像名称/路径,但这可能比仅通过迭代文件夹慢。你觉得怎么样?
答案 0 :(得分:1)
看起来像一次性工作?如果是这样,您可以使用ImageMagick的convert
实用程序在一次点击时调整所有拇指图像的大小:
$ convert -resize '250x250' image1.jpg image1_thumb.jpg
您可以使用适当的模式循环拍摄图像:
$ for i in $(find . -regex '.*image[0-9]+\.jpg'); do echo $i ; done
./image2.jpg
./image1.jpg
./image4.jpg
./image3.jpg
$
并使用上一个命令转换它们:
for i in $(find . -regex '.*image[0-9]+\.jpg'); do
convert -resize '250x250' $i $(echo $i | sed 's/.jpg/_thumb.jpg/g');
done
预览:
$ ls
image1.jpg image2.jpg image3.jpg image4.jpg
$ for i in $(find . -regex '.*image[0-9]+\.jpg'); do echo $i ; done
./image2.jpg
./image1.jpg
./image4.jpg
./image3.jpg
$ for i in $(find . -regex '.*image[0-9]+\.jpg'); do
> convert -resize '250x250' $i $(echo $i | sed 's/.jpg/_thumb.jpg/g');
> done
$ ls
image1.jpg image1_thumb.jpg image2.jpg image2_thumb.jpg image3.jpg image3_thumb.jpg image4.jpg image4_thumb.jpg
$
让它运行直到所有图像都被转换。