前面全是废话, 直接跳到怎么用
前几天在报自招, 照片材料文件限制真的非常麻烦啊…
于是我随手写了一串脚本:
#!/bin/sh
if [ -d out_small_data ];then
echo "out_small_data dir existed."
read -n 1 -p "remove it?[y/N]" answer
echo
if [ "$answer" == "y" ];then
rm -rf out_small_data
else
exit
fi
fi
cp data out_small_data -r
cd out_small_data
FILE_SIZE=300k
QUALITY=50
SIZE=100
while [ "$(find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +$FILE_SIZE | sed "s/^\.\///")x" != "x" ]
do
for f in $(find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +$FILE_SIZE | sed "s/^\.\///")
do
#echo "converting $f with $QUALITY% quality..."
echo "converting $f with $SIZE% size..."
mv $f "tmp$f"
convert -quality ${QUALITY} "tmp$f" "tmp2$f"
convert -resize $SIZE%x$SIZE% "tmp2$f" $f
rm "tmp$f" "tmp2$f"
done
QUALITY=$(($QUALITY - 1))
SIZE=$(($SIZE - 1))
done
for f in $(find ./ -regex '.*\(.png\|.PNG\)$' | sed "s/^\.\///")
do
echo "convert png file "$f" to jpg file"
mv $f "tmp$f"
convert "tmp$f" $(echo $f | sed 's/\..*$/.jpg/')
rm "tmp$f"
done
echo "done"
原理非常粗暴o_o ….
就是一步步减小质量和分辨率直到文件符合大小为止
感觉还不错(。・∀・)ノ
然后陆陆续续有一些同学来找我压缩图片
其实下个50M+的格式工程手动一步步缩小就能解决, 但都太懒了
然后我也懒得不行..连敲一行命令都不想
然后想把脚本给他…( _ _)ノ|
但不行啊总不能让别人每个人都升级Windows 10 Insider再按个WSL吧
然后我就想要不写个UI吧( ̄︶ ̄)↗
然后不想写个Web APP啊..毕竟找不到免费的国内的性能比较好的VPS, 然后我又不会PHP╯︿╰
要不写native的吧?
然后我又不会WPF…要不用PyQT? SWING? GTK C?
然后我就想起好像还有个JavaFX(*゜ー゜*)
然后随手搜了一下(●’◡’●)
看起来挺容易上手的(ง •_•)ง
确实也挺容易上手的( ̄▽ ̄)”
然后三两下就入了门,
配合过硬的Google技能\( ̄︶ ̄*\))
然后Scale JPG就写好了
真的只要吧照片文件拖进去就好了
真的非常方便!( ´・・)ノ(._.`)
真的非常方便写!
MVC框架非常清晰干净,(哪来的M…VC框架(+_+)?
然后用Java1.8, 再也不用一堆匿名listener, lamda函数来回嵌套♪(^∇^*)
zenjava的javafx-maven-plugin一行命令就打包好了exe
然后, 然后这边又好多然后… 最后我来谈谈怎么用
怎么用
首先下载…
虽然是小工具…但因为捆绑了Jre8巨大无比…40MB
首先看看演示视频
然后解压
然后打开
这里有几个选项, 在MenuBar - Edit - Setting
第一个Initial Scale: 初始压缩大小, 就是我第一个尝试的照片尺寸(百分比)
第二个Scale Step: 每步减少的百分百
- 这两个一般不用管
最后一个是File Size, 文件限制大小, 单位是KB
点OK保存
然后把文件拖进去
然后在原文件目录下就生成好了缩放好的文件(orginal name-scaled.jpg)
好, 搞定!