2011-11-10 118 views
1

我有應該調整在給定文件夾中的所有圖像的功能(我不知道究竟有多少,但我想2500+),並將它們保存到一個文件夾不同勢:比例調整圖片大小9

<CFSET base = expandpath("./images") /> 
<CFSET folders = listtoarray("folder1,folder2") /> 
<CFLOOP array="#folders#" index="folder"> 
    <CFDIRECTORY name="qImages" directory="#base#/#folder#/big/" action="list" listinfo="name" type="file" filter="*.jpg" /> 
    <CFLOOP query="qBilder"> 
    <CFIMAGE action="resize" height="" width="320" source="#base#/#folder#/big/#name#" destination="#base#/#folder#/#name#" overwrite="yes" /> 
    </CFLOOP> 
</CFLOOP> 

我想知道如何做到這一點比我更有效率?!我讀到CF中有17 different algorithms for resizing images。哪一個會是圖像質量和速度良好混合的最高性能?

+0

這是一次性過程還是會更頻繁地運行? – Antony

+0

只跑了一次..但花了大約30分鐘的CPU負載沉重 – Seybsen

+0

爲一次性的任務,我不會用coldfusion做到這一點誠實 - 除非我沒有其他訪問服務器/文件 – Antony

回答

1

您可以首先測試imageResize()的性能。正如jan所說,玩「插值參數」來獲得質量與速度。如果它被證明太慢/太難看,請使用ImageMagik

1

對於圖像< = 100x100像素和其他「最高質量」或「lanczos」的圖像,設置插值爲「highestPerformance」。如果您正在創建.jpgs,則默認質量爲0.75,即75%。對於小圖像,將其降至0.5或更低,以獲得快速低質量的圖像。

如果您想要按比例調整大小,請提供帶有寬度或高度的imageResize(),但不能同時使用兩者。

http://cfquickdocs.com/cf9/#imageresize