标题: [文件操作] 求个代码 ImageMagick 批处理生成图片的缩略图 [打印本页]
作者: ganjie 时间: 2008-12-10 14:12 标题: 求个代码 ImageMagick 批处理生成图片的缩略图
最近下载了一个ImageMagick 安装完毕后测试成功,如:im_convert -resize 200x200 8.jpg 2.jpg 图片2.jpg 可以缩小到200x200 ,现在小弟想在把目录下面的所有子目录里的图片文件如*.jpg、*.png、*gif等图片缩小然后放进个自的thumb文件夹中,如C盘下建有2008这个文件夹,而2008里有AB 、02两个文件夹,AB和02这两个子目录中都有图片,用im_convert -resize这个命令将图片缩小后,AB这个缩略图就放在AB这个文件夹下面的thumb文件夹中,同理02这个缩略图就放在02这个文件夹下面的thumb文件夹中,谢谢!
[ 本帖最后由 ganjie 于 2008-12-12 15:52 编辑 ]
作者: a794685135 时间: 2008-12-10 19:36
你需要 md thumb吧
不知道是不是
作者: ganjie 时间: 2008-12-11 09:35
md thumb? 这是?可以说得更清楚一些吗
作者: ganjie 时间: 2008-12-12 09:47
没有人回贴呀,高手们可以教我一下吗?谢谢了!
作者: wxcute 时间: 2008-12-12 10:05
修改?
你的代码是不能运行?还是有时会出错?
如果总是让人猜测你要干什么,问题何时能解决阿。
作者: ganjie 时间: 2008-12-12 10:42
代码应该是写错了,下图是系统提示的
如果无法修改就照着我上述的贴子编个代码,谢谢!
[ 本帖最后由 ganjie 于 2008-12-12 11:19 编辑 ]
作者: wxcute 时间: 2008-12-12 16:55
没有用过这个软件,以下代码未测试- @echo off
- set "route=%cd%"
- for /f "delims=" %%i in ('dir /ad /b /s "%route%"') do (
- if not exist "%%i\thumb" md "%%i\thumb"
- cd "%%i"
- for /f "delims=" %%j in ('dir /a-d /b "%%i\*.jpg" "%%i\*.png" "%%i\*.gif"') do (
- %im_convert% -resize 200x200 "%%j" "%%i\thumb\%%j"
- )
- )
- pause
复制代码
作者: ganjie 时间: 2008-12-12 17:14
测试了一下,它没有生成"%%j" 的缩略图,而是直接打开浏览了"%%j"
我在网上找了一个批量生成某目录下所有PNG图像文件的缩略图- for %%f in (*.jpg) do im_convert -resize 200x200 "%%f" "thumb\%%~nf.png"
复制代码
这个代码却可以成功
而下面这个是却老是提示出错,提示如下图- @echo off
- set "route=%cd%"
- for /f "delims=" %%i in ('dir /ad /b /s "%route%"') do (
- for /f "delims=" %%j in ('dir /a-d /b "%%i\*.jpg" "%%i\*.png" "%%i\*.gif"') do (
- im_convert -resize 200x200 "%%j" "thumb\%%~nj.png"
- )
- )
- pause
复制代码
[ 本帖最后由 ganjie 于 2008-12-13 07:59 编辑 ]
作者: tireless 时间: 2008-12-13 10:08
用 ImageMagick 里面的 mogrify.exe,支持批量并保持文件名(convet.exe 虽然也支持批量,但批量的情况下无法保持文件名):- @echo off
- for /f "delims=" %%a in ('dir /a:d /s /b') do (
- if not exist "%%a\thumb" md "%%a\thumb"
- mogrify -path "%%a\thumb" -thumbnail 200x200 *.gif *.png *.jpg
- )
复制代码
[ 本帖最后由 tireless 于 2008-12-13 10:15 编辑 ]
作者: wxcute 时间: 2008-12-13 10:19 标题: 回复 8楼 的帖子
去掉我在 7 楼 %im_convert% 两边的百分号 % 试试。
作者: ganjie 时间: 2008-12-13 10:35
哦,原来如此,还有下面这段代码
if not exist "%%a\thumb" md "%%a\thumb"
"%%a文件夹已经有了一个thumb,它却还是要在thumb文件夹下新建thumb,而且运行一次就再thumb下新建一个thumb,我去找了资料,可是还是弄不好,不让它再次新建thumb文件夹
作者: tireless 时间: 2008-12-13 10:46 标题: Re #11
- @echo off
- for /f "delims=" %%a in ('dir /a:d /s /b') do (
- if "%%~na" neq "thumb" (
- if not exist "%%a\thumb" md "%%a\thumb"
- mogrify -path "%%a\thumb" -thumbnail 200x200 *.gif *.png *.jpg
- )
- )
复制代码
作者: ganjie 时间: 2008-12-13 10:52
经过测试可以了!^_^
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |