2013-08-25 36 views
0

我們最近決定重新設計使用150x150縮略圖的舊應用程序。新的大拇指大小爲250x250。現在,我必須更改以前的條目創建的所有大拇指。調整大部分圖像(php或任何其他語言)

用於創建新縮略圖的函數是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

您是否將此作爲一次性過程進行調整,還是將調整大小作爲您網站的一項功能? –

+0

這是一個一次性過程,用於替換大小仍然爲150x150像素的舊縮略圖(在重新設計之前創建的大拇指)。 –

+0

我想不起任何批處理軟件,但我可以明確地告訴你,在本地有比通過PHP運行更好的解決方案 –

回答

1

看起來像是一次性工作嗎?如果讓你用ImageMagickconvert實用的一重擊調整所有的拇指圖片:

$ convert -resize '250x250' image1.jpg image1_thumb.jpg 

您可以循環throght使用適當的模式圖像:

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

讓它運行直到所有圖像都被轉換。

+0

我不會調整從150到250,因爲它會影響質量。正如你在我的問題中看到的那樣,文件夾內還有原始大小的圖像。我只需要刪除舊的拇指和/或用新的,大的原創的250個替換它們。 –

+0

@BikerJohn沒關係,你只需要改變命令並選擇原始圖像作爲輸入並覆蓋新圖像。 – 2013-08-25 11:04:51

相關問題