我有一个功能应该调整给定文件夹中的所有图像(我不确切知道多少,但我猜2500+)并将它们保存到不同的文件夹中:
<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 :(得分:1)
您可以先测试imageResize()
的效果。正如jan所说,使用“插值参数”来获得你的质量与速度。如果证明它太慢/太难看,请使用ImageMagik
答案 1 :(得分:1)
为图像&lt; = 100x100像素设置插值为“highestPerformance”,其余为“highestQuality”或“lanczos”。如果要创建.jpgs,则默认质量为0.75,即75%。对于微小的图像,将其降至0.5或更低,以获得快速低质量的图像。
如果想要按比例调整大小,请提供宽度或高度的imageResize(),但不能同时提供两者。