How to reduce image size of JPG file

Stella981
• 阅读 372

Digital camera's are being increasingly used to capture moments, screen shots, evidential photographs and other artifacts, the challenge has been the progressively large size of the JPG image files.

A large JPG image file of 3MB, 5MB, 7MB or even 15 MB has a lot of bits, that are useful for digital processing and commercial art. However, images of 640x480, 1024x768 pixel resolution are useful for consumption on the web eg. photogallery, blogs, articles etc.

'convert' is a versatile utility that is part of the ImageMagick toolkit and is available on FreeBSD, NetBSD, OpenSolaris and Linux, perhaps even on Windows.

Let us say, you have a directory full of image files with .JPG extension, that you have just moved/downloaded across from your digital camera.

Here is a sample script that does the job of reducing the size of .JPG files and renames them to filename.jpg (all lower case)

for jpgname in *.JPG;

do

filename=`basename -s .JPG ${jpgname}`;

convert -verbose -resize 640x480 +profile '*' ${jpgname} ${filename}.jpg;

done

You'd see an output like this

P1070895.JPG JPEG 2048x1536 2048x1536+0+0 8-bit DirectClass 1.231MB 0.560u 0:00.570

P1070895.jpg JPEG 2048x1536=>640x480 640x480+0+0 8-bit DirectClass 147KB 2.740u 0:01.589

P1070896.JPG JPEG 2048x1536 2048x1536+0+0 8-bit DirectClass 1.442MB 0.590u 0:00.589

P1070896.jpg JPEG 2048x1536=>640x480 640x480+0+0 8-bit DirectClass 184KB 2.780u 0:01.620

P1070897.JPG JPEG 2048x1536 2048x1536+0+0 8-bit DirectClass 1.31MB 0.570u 0:00.580

P1070897.jpg JPEG 2048x1536=>640x480 640x480+0+0 8-bit DirectClass 147KB 2.770u 0:01.620

P1070898.JPG JPEG 2048x1536 2048x1536+0+0 8-bit DirectClass 1.592MB 0.600u 0:00.599

P1070898.jpg JPEG 2048x1536=>640x480 640x480+0+0 8-bit DirectClass 197KB 2.750u 0:01.610

You're now all set to use the web ready jpg files.

the convert utility has many options, eg. reduce the size of the image by certain percentage, convert .JPG file to .PNG format etc. Please take a look at various command line options at http://www.imagemagick.org/script/command-line-options.php

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
5个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
密钥管理系统-为你的天翼云资产上把“锁
本文关键词:数据安全,密码机,密钥管理一、你的云上资产真的安全么?1.2021年1月,巴西的一个数据库30TB数据被破坏,泄露的数据包含有1.04亿辆汽车和约4000万家公司的详细信息,受影响的人员数量可能有2.2亿;2.2021年2月,广受欢迎的音频聊天室应用Clubhouse的用户数据被恶意黑客或间谍窃取。据悉,一位身份不明的用户能够将Clubho
NVIDIA安培架构下MIG技术分析
关键词:NVIDIA、MIG、安培一什么是MIG2020年5月,NVIDIA发布了最新的GPU架构:安培,以及基于安培架构的最新的GPU:A100。安培提供了许多新的特性,MIG是其中一项非常重要的新特性。MIG的全名是MultiInstanceGPU。NVIDIA安培架构中的MIG模式可以在A100GPU上并行运行七个作业。多实
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue