LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2687|回复: 11

请问如何用gimp批量修改图片大小?

[复制链接]
发表于 2007-3-2 12:12:42 | 显示全部楼层 |阅读模式
我的数码相机拍的照片,有3M,5M两种大小保存的照片.
我想在不修改照片色彩和文件格式,同时保持长宽比例的前提下,修改尺寸到width*height大小,当然由于保持了长宽比例,所以不一定就是精确的width和height,请问大家该怎么做?通过命令行么?gimp支持命令行,但是不知道如何做. 另外好像听说gimp还支持一个script可以在图形模式下批量修改,但是也不知道如何做.
谢谢
发表于 2007-3-2 12:22:53 | 显示全部楼层
script-fu,但我不知道怎么写。这里有个现成的,但看上去没有保持原比例的选项:

http://www.gimptalk.com/forum/topic.php?t=9440&start=1
回复 支持 反对

使用道具 举报

发表于 2007-3-2 13:21:02 | 显示全部楼层
用ImageMagick吧, 假如当前目录放的就是所有这些图片
1. 保持长宽比例,高度都变为256:
   for jpgfile in `ls` ; do convert $jpgfile -resize x256 new_$jpgfile ; done

2. 长宽都放缩为原来的50%
   for jpgfile in `ls` ; do convert $jpgfile -resize %50 new_$jpgfile ; done
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-2 13:22:12 | 显示全部楼层
不好意思,忘记说了我是在win32平台,这里只装了gimp...
回复 支持 反对

使用道具 举报

发表于 2007-3-2 13:46:05 | 显示全部楼层
Xnview。。。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 13:15:45 | 显示全部楼层
Post by izzystar
用ImageMagick吧, 假如当前目录放的就是所有这些图片
1. 保持长宽比例,高度都变为256:
   for jpgfile in `ls` ; do convert $jpgfile -resize x256 new_$jpgfile ; done

2. 长宽都放缩为原来的50%
   for jpgfile in `ls` ; do convert $jpgfile -resize %50 new_$jpgfile ; done

比如,原来是256x256的图标,现在改为128x128的图票改如何写?像下面这样吗?
for jpgfile in `ls` ; do convert $jpgfile -resize 128x128 new_$jpgfile ; done
回复 支持 反对

使用道具 举报

发表于 2007-3-3 20:46:06 | 显示全部楼层
Post by 小楼东风
比如,原来是256x256的图标,现在改为128x128的图票改如何写?像下面这样吗?
for jpgfile in `ls` ; do convert $jpgfile -resize 128x128 new_$jpgfile ; done


对的,也可以把-resize 128x128 改为 -resize 50%.
直接在终端输入这一行就解决问题了。

另外,ImageMagick也有Windows版,它的功能很强大,但没有图形界面。
只不过MS Windows没有shell,可以考虑用.bat批量处理,道理是一样的。
回复 支持 反对

使用道具 举报

发表于 2007-3-5 16:11:17 | 显示全部楼层
如果是PNG文件,$jpgfile文件要如何修改?
回复 支持 反对

使用道具 举报

发表于 2007-3-5 16:15:13 | 显示全部楼层
我试了一下,只能一个一个改,使用for jpgfile in `ls` ; do convert $jpgfile -resize 64x64 new_$jpgfile ; done修改PNG图标出错,
convert: unable to open image `Acrobat': No such file or directory.
convert: missing an image filename `new_Acrobat'.
convert: unable to open image `Distiller': No such file or directory.
convert: missing an image filename `new_Distiller'.
,只有几个能改,而且图片还花了。
回复 支持 反对

使用道具 举报

发表于 2007-3-5 18:03:49 | 显示全部楼层
for i in `ls`本来就是不好的,没考虑IFS。应该

for i in *; while read line; do ....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表