2011-11-10 3 views
1

にサイズを変更:比例画像は、私は特定のフォルダ内のすべての画像のサイズを変更する(私はどのくらいかわからないが、私は2500+を推測)と切り抜いたフォルダに保存しなければならない機能を持っているColdFusion 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

ちょうど1回走ったが重いCPU負荷で約30分かかった – Seybsen

+0

一度オフになったタスクのために私は冷静にそれをするだろう - サーバー/ファイルへの他のアクセスがない限り、 – Antony

答えて

1

最初にimageResize()のパフォーマンスをテストすることができます。 janが言ったように、あなたの品質とスピードを得るために、 "補間パラメータ"で遊んでください。 ImageMagik

1

画像の場合、< = 100x100ピクセル、「highestQuality」または「lanczos」の補間を「highestPerformance」に設定してください。 .jpgを作成している場合、デフォルトの品質は0.75で、これは75%を意味します。小さな画像の場合は、これを0.5以下に落として、素早く低品質の画像を作成します。

比例的なサイズ変更が必要な場合は、imageResize()に幅または高さを指定しますが、両方を指定することはできません。

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