2013-02-28 41 views
1

我一定约十亿图像从JP2为JPG转换...ImageMagick的批量转换内存过载

我创造这样的.bat

for /d %%d in (*) do (
    for %%f in ("%%~d\*.jp2") do (
    convert -limit memory 0 -limit map 0 "%%~ff" -quality 25 "%%~dpf\jpg\%%~nf.jpg" 
) 
) 

但是当它转化的超过100〜000的窗户扔是我错误与免费内存等...我怎么能做到这一点,内存使用更多的人性?那图像转换器?如果是的话,释放内存....也许有方法可以将其他东西线程化?

现在我得到的concolse可用内存错误的,也窗口之遥埃罗的太...

另外,如果我删除限制内存0 -limit地图0我有同样的问题...

+0

我想知道是否在单独的空间启动'convert'会有帮助吗?尝试“开始”“转换”等,看看是否有所作为。 – rojo 2013-02-28 14:37:34

+0

@rojo你最好举个例子...... – brabertaser19 2013-02-28 15:21:38

+0

那么,我想到的是你上面有什么,但只是把'开始'“'放在'convert -limit memory 0 -limit map 0'前面等等。看起来像“开始”,“convert -limit memory 0 -limit map”等等。这只是一个猜测,我不确定它是否会起作用,所以我不想将它作为下面的正式答案发布。 – rojo 2013-02-28 15:36:11

回答

1

根据我们的chat session,解决方案是不使用ImageMagick的convert进行转换。 IrfanView支持command line switches进行批处理,并且在源和目标参数中均使用通配符。您还需要jpeg2000 plugin从jp2转换。

for /d %%d in (*) do (
    pushd "%%d" 
    if not exist "jpg\" md jpg 
    "c:\Program Files (x86)\IrfanView\i_view32.exe" *.jp2 /convert=jpg\*.jpg /jpgq=25 
    popd 
) 
+0

好的,谢谢的.... – brabertaser19 2013-03-02 16:20:35