linux的convert图片处理工具
得到一个图片的尺寸,
identify test.png
结果为:
test.png PNG 178x15 178x15+0+0 16-bit PseudoClass 65536c 2.28kb
使用shell
identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 1
identify test.png | cut -d ' ' -f 3 | cut -d 'x' -f 2
分别得到宽和高
不过要是在java中通过runtime来运行这个命令是很麻烦的,它使用空格把参数分割出来的,它不会认为引号引起来的是一个参数,这个也有解决办法,这里就不说了。
所以,还是用identify test.png这个命令,得到的字符串用java的方式处理一下,也很简单。
1、压缩一个图片,限定高度为60, 宽高比例不变,但如果宽大于90,截取中间一段
convert source.jpg -resize x60 result_60.jpg
获取result_60.jpg的宽和高
if( 宽 > 90 ){
convert result_60.jpg -gravity center -extent 90x60 result_60.jpg
}
这里要注意, -gravity和-extent配合使用在6.2.8的版本中是不正常的,可以选择用crop
计算 dx = (宽-90)/2
convert result_60.jpg -crop 90x60+${dx}+0 result_60.jpg
2、压缩一个图片,限定高和宽, 宽高比例不变,需要适当的裁减
例如:压缩为60x60, 这是一个特例,宽高正好相同,如果不同,计算会有所不同,但方法一样。
获取source.jpg的宽和高
if( 宽 > 高 ){
convert source.jpg -resize x60 -gravity center -extent 60x60 result_60.jpg
}
else{
convert source.jpg -resize 60x -gravity center -extent 60x60 result_60.jpg
}
3、截图
convert result_60.jpg -crop wxh+dx+dy result_60.jpg
w为要截取图片的宽
h为要截取图片的高
dx,dy是开始截取的偏移位置,以左上角为原点
4、拼图
横向拼接
convert 1.jpg 2.jpg 3.jpg +append result.jpg
纵向拼接
convert 1.jpg 2.jpg 3.jpg -append result.jpg
横向+纵向
convert /( 1.jpg 2.jpg 3.jpg +append /) /
/( 4.jpg 5.jpg 6.jpg +append /) /
/( 7.jpg 8.jpg 9.jpg +append /) /
-append result.jpg
5、256色png压缩
convert -strip -depth 8 -colors 256 soure.png result.png
advpng -z -4 result.png
6、图片上写字
convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg
使用字体xxx.ttf, 字体用红色填充,字体48pixel, 位置(50,50), 文字在text.txt文件中
7、图片上画长方形
convert source.jpg fill none -stroke red -strokewidth 3 -draw rectangle 50,50 100,100 result.jpg
还一个线宽为3,颜色为红色,从50,50到100,100的正方形,不填充
画线为 -draw line 50,50 100,100
相关链接:
1. http://dikar.iteye.com/blog/1576056
2. http://www.linuxbyte.org/linux-convert-mini-howto.html
3. http://www.cnblogs.com/chenwenbiao/archive/2011/07/25/2116152.html
4. http://wiki.klniu.com/zh/Linux常用命令或工具集 (10)
linux的convert图片处理工具的更多相关文章
- linux下图片转换工具[【转】
本文转载自:https://linux.cn/article-8014-1.html 计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法.这篇教程里,我们会使用 Linux 命令行 ...
- Linux之convert命令
Linux之convert命令 强大的convert命令 convert命令可以用来转换图像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPM和XWD等类型,下面举几个例 ...
- Java操作图片的工具类
操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...
- ubuntu下linux内核源码阅读工具和调试方法总结
http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...
- java图片处理工具类
直接上代码: package com.zxd.tool; /** * Created by zhang on 14-3-1. * 图片的常用操作类 */ import java.awt.AlphaCo ...
- 8 个优秀的 Linux 图形图像及色彩工具
8 个优秀的 Linux 图形图像及色彩工具 1. 硬件色彩分析器LPROF LPROF 是一个用于创建设备兼容,如相机.扫描仪.显示器的ICC兼容型材的颜色分析器.这些配置提供跨设备的色彩一致性.他 ...
- Java的图片处理工具类
import Java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- Linux开机启动图片修改
Linux启动时会在屏幕上显示一个默认的开机图片,我们可以修改成为自己的图片,需要做以下工作 软件gimp下载地址:http://www.rayfile.com/zh-cn/files/0bb556b ...
- 最简单的基于FFmpeg的libswscale的示例附件:测试图片生成工具
===================================================== 最简单的基于FFmpeg的libswscale的示例系列文章列表: 最简单的基于FFmpeg ...
随机推荐
- loadrunner 脚本开发-int型变量和字符串的相互转换
脚本开发-int型变量和字符串的相互转换 by:授客 QQ:1033553122 字符串转化为int型变量 Action2() { int j = 0; j = atoi("12345&qu ...
- 《ASP.NET MVC企业实战》(一) MVC开发前奏
一.工具和方法 学到了一些没用过的工具和方法: a)删除多余的using指令并排序:一个类头部的using一般会有很多用不到的,在完成类的编写后,可以右键选择”组织using”来删除没用的using并 ...
- 监听软件异常崩溃并且保持日志--CrashHandler编写自己的异常捕获类
平时写代码,我们可能会抛出各种异常,这些异常有些是我们测试过程中发现进行解决的,但是也有一些异常是我们未知的,不论是代码的逻辑问题还是Android本身底层的一些bug,我们都需要及时了解并进行解决. ...
- 【Java入门提高篇】Day21 Java容器类详解(四)ArrayList源码分析
今天要介绍的是List接口中最常用的实现类——ArrayList,本篇的源码分析基于JDK8,如果有不一致的地方,可先切换到JDK8后再进行操作. 本篇的内容主要包括这几块: 1.源码结构介绍 2.源 ...
- zookeeper.Net
原文转至:http://www.cnblogs.com/shanyou/p/3221990.html 之前整理过一篇文章<zookeeper 分布式锁服务>,本文介绍的 Zookeeper ...
- 为Hexo Next主题添加分享及打赏功能
博客地址:往事亦如风的博客 要想先看打赏和分享功能效果,请移步我的博客 打赏功能 因为next主题自带打赏功能,所以我们只需要在next的主题配置文件中找到如下代码,image文件夹是我在blog/s ...
- 盐城 - 开设IT公司的好地方
盐城:位于江苏省北部,这一好像只能算三线的城市,不久前当选为“国家中心城市”.在全国仅有的50城市中名列34.它可成为发展IT产业的好地方. (1)人才济济.从这里走出去的高级人才数不胜数,留在这里的 ...
- Flume-1.8.0_部署与常用案例
该文章是基于 Hadoop2.7.6_01_部署 进行的 Flume官方文档:FlumeUserGuide 常见问题:记flume部署过程中遇到的问题以及解决方法(持续更新) 1. 前言 在一个完整的 ...
- 薛兆丰吴军何帆曾鸣万维刚李笑来罗永浩等得到APP专栏作者的书23本
最近看了何帆的<大局观>,是他在得到APP的专栏文章的精选.顺便整理以下最近两三年内看过的得到APP其他专栏与课程作者的得到精选文集和他们写过的其他的书共23本. 薛兆丰 4星|<薛 ...
- mobx 入门
observable(可观察的数据) 数组 import { observable, isArrayLike } from 'mobx' const arr = observable(['a', 'b ...