调整大部分图像的大小(php或任何其他语言)

调整大部分图像的大小(php或任何其他语言),php,Php,我们最近决定重新设计使用150x150缩略图的旧应用程序。新拇指的尺寸为250x250。现在我必须更改以前条目创建的所有拇指 用于创建新缩略图的函数是php的imagecopyresampled 您是否建议使用php或任何其他本地操作系统语言/软件调整所有旧缩略图的大小,以便在本地更快地调整它们的大小?(软件必须支持copyresampled功能或类似结果) 此外,作业本身有点复杂,因为在遍历文件时必须排除一些文件夹 level 1: company folder level 2: compan

我们最近决定重新设计使用150x150缩略图的旧应用程序。新拇指的尺寸为250x250。现在我必须更改以前条目创建的所有拇指

用于创建新缩略图的函数是php的
imagecopyresampled

您是否建议使用php或任何其他本地操作系统语言/软件调整所有旧缩略图的大小,以便在本地更快地调整它们的大小?(软件必须支持
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)

我也可以使用另一种方法,在属性
数据库
中查找图像名称/路径,但这可能比仅迭代文件夹要慢。你觉得怎么样?

看起来像是一次性工作?如果是这样,您可以使用的工具一次性调整所有拇指图像的大小:

$ 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
$ 

让它一直运行,直到所有图像都被转换。

你是作为一次性过程来做的,还是调整大小是你网站的一项功能?这是一个一次性过程,用于替换仍然大小为150x150px的旧缩略图(重新设计之前创建的缩略图)。我想不出有任何批量软件,但我可以肯定地告诉你,本地有比通过PHPI运行更好的解决方案(我也记不起来了:)但是有很多这样的应用程序,它们在成本和效率上各不相同。我怀疑从150倍到250倍会降低很多。@AndyG不,我不会从150倍调整到250倍。正如你在我的问题中看到的,文件夹中还有原始大小的图像。我只需要删除旧的拇指,然后从原来的大拇指上创建新的250个。我不会从150调整到250,因为这会影响质量。正如你在我的问题中看到的,文件夹中还有原始大小的图像。我只需要删除旧的拇指和/或将它们替换为新的,250个由原始大拇指创建的拇指。@BikerJohn没关系,您只需要更改命令并选择原始图像作为输入,然后用新图像覆盖拇指图像。