当前位置:首页 » 操作系统 » linuxconvert

linuxconvert

发布时间: 2022-12-30 23:33:12

1. 巧用linux工具之convert简介

同样使用linux下的identify命令:

  identify ABCD.png

输出: ABCD.png PNG 339x362 339x362+0+0 8-bit DirectClass 76.2kb

说明:图片ABCD.png的格式为PNG,宽、高分别为339和362,位深度8-bit,大小76.2kb;下文主要涉及宽、高的信息。

设置高度限制为60, 宽高比例不变,使用convert的 -resize 参数

convert ABCD.png -resize x60 ABCD_t1.png

查看压缩后的图片:

 ABCD_t1.png PNG 56x60 56x60+0+0 8-bit DirectClass 4.7kb

借助convert的 -crop 参数

convert 输入.png  -crop  w x h + dx + dy   输出.png

其中: w为截取的宽;h为截取的高;dx、dy分别是开始截取的偏移位置,以左上角为原点

例如: convert ABCD.png -crop 300 x 200 + 10 + 10   ABCD_t2.png

可见,截图是自上而下、自左向右的;宽度(稍微截了一点)和高度(明显截短)(原图: 339x362 )均进行了截取,如下图:

(1)横向拼接

 convert  1.png   2.png  n.png +append   merge.png (支持多个)

例如:把ABCD.png 和 ABCD_t2.png拼接起来

(2)纵向拼接

convert  1.png  2.png  n.png -append   merge.jpg

把ABCD.png 和 ABCD_t3.png进行纵向拼接起来

convert ABCD.png -fill red -pointsize 20 -annotate +150+120  HELLO  text.png

在原图片上150x120位置上添加大小为20的红色文字:HELLO

可以在PNG、PDF、JPG、TIFF等众多格式见相互转换

例如: convert ABCD.png  ABCD.pdf

批量转换:for file in *.png; do convert $file ${file%%.*}.jpg; done

[1] http://www.imagemagick.com.cn/

[2] http://www.imagemagick.org/script/index.php

2. 如何在Linux命令行中剪裁图像

如果你想要剪裁映像以去除空白,你可以使用ImageMagick自带的两个命令行工具。

如果你还没有安装ImageMagick,安装ImageMagick


在本教程中,让我们来剪裁以下PNG图像。我们想要去除图像右边和底部的边缘,以便让图标居中。

首先,鉴定图像文件的尺寸(宽度和高度)。你可以使用identity命令来完成。

$ identify chart.png </p> <p> chart.png PNG 1500x1000 1500x1000+0+0
8-bit DirectClass 31.7KB 0.000u 0:00.000

就像上面显示的那样,输入的图像是1500x1000px。

接下来,确定图像剪裁要做的两件事:(1)剪裁图像开始的位置(2)剪裁矩形区域的大小。

在本实例中,让我们假定图像剪裁从左上角开始,更精确点是在x=20px和y=10px,那样的话,剪裁后的图像尺寸为1200x700px。

用于剪裁图像的工具是convert。使用“-crop”选项后,convert命令会在输入图像中剪裁出一个矩形区域

$ convert chart.png -crop 1200x700+20+10 chart-cropped.png

指定输入图像为chart.png,convert命令会将剪裁后的图像存储为chart-cropped.png。

3. linux convert 在添加水印的时候,是否能修改水印的透明度

可以的,要看你用什么软件了,像光影魔术手

4. linux convert命令转换图片尺寸

convert -resize 160x80! inputFileName outputFileName

在尺寸后面加上"!"(感叹号)就可以了,表示强制转换!

5. 请问linux系统中使用convert命令进行作图,需要安装什么软件吗

在ubuntu中首先执行以下命令安装convert命令:

sudoapt-get-yinstallimagemagick

然后输入密码即可安装。

安装完毕后执行以下命令看是否安装成功:

convert-version

然后执行以下命令测试(我以1.jpg图片为例):

convert1.jpg-print"Size:%wx%h
"/dev/null

6. linux系统使用convert把svg图片转换为png图片时,如何改变png图片的大小,以保证图片不失真

convert对svg的支持有限,不确定支持到哪个版本。

你还是使用Inkscape吧。1.0的svg不支持scale,记得好像是。

7. linux 下 convert 转换 PDF 到图片报错

Manjaro linux 系统下,通过 convert 将pdf 转换为图片时出现如下 the security policy 报错:

这个问题表明:Imagemagick 安全策略似乎不允许我执行pdf 转换 jpg。安装 imagemagick 之后,没有对其做过任何设置处理。

参考 stackoverflow: https://stackoverflow.com/questions/52998331/imagemagick-security-policy-pdf-blocking-conversion

从报错看是 Imagemagick 安全协议不允许 gs 运行,所以去查看 Imagemagick 的安全协议。

在 /etc/ImageMagick-7/ 文件夹下找到 policy.xml 文件。文件最后部分,发现 gs 部分未被注释,而 right=none ,是不允许的

将上述部分注释之后,成功将 pdf 转 jpg。

8. 《Linux下部分常用指令笔记》

一、创建linux维护用户

登录root用户

创建新用户

useradd 新用户名

设置用户密码

passwd 新用户密码

二、安装jdk和配置环境变量

建议在root用户下直接安装jdk,并直接配置环境变量,同时给非root用户设置读和执行权限

解压

tar xvf jdk包名.tar

配置全局变量

编辑/etc/profile文件

vi /etc/profile

按I键,切换成编辑模式。

在文件未加入一下配置

export java_HOME=jdk的解压文件目录

export JRE_HOME=jdk的解压文件目录/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${ JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${ JRE_HOME}/bin

export PATH=$PATH:${JAVA_PATH}

保存并退出

Esc   

:wq

重载配置文件使其生效

source /etc/profile

检查是否安装成功

Javac

Java version

 

权限修改

读4写2执行1,顺序所有者、组成员、其他用户

Chomd  755  jdk的解压文件目录

三、安装tomcat

安装tomcat和放入war包使用非root的维护用户

如果使用root安装的话记得设置权限。( chomd -r 外层文件目录 )

su - 用户名

1、解压包

tar  xvf  tomcat包名.tar

2、将war包放入tomcat/webapps目录下

3、Tomcat启动服务和停止服务

查看进程

ps -ef | grep java

启动应用

Tomcat bin目录下.startup.sh

停止应用

建议使用

Kill -9 进程号

注:解压出应用文件后,注意配置信息的修改

四、IBM MQ部署 (7.5之后的版本)

(以下是使用9.0版本的正确部署命令)

一、 卸载旧版本IBM MQ (可选)

<因为部署环境没有安装过mq,卸载这部分命令我没有亲自测试过>

设置环境

以用户身份登录到组mqm,找到mq的安装位置 /opt/mqm

source ./setmqenv -s

 

查看队列管理器的状态

dspmq -o installation

停止与要卸载的安装关联的所有正在运行的队列管理器

endmqm SXRECV

 

停止与队列管理器关联的所有侦听器。

endmqlsr -m SXRECV

 

查看系统上当前安装的软件包(组件)

sudo rpm -qa | grep MQSeries

 

 

列出软件包并一次性卸载

 sudo rpm -qa | grep MQSeries | xargs rpm -ev

 

再将对应的用户及安装目录给删除

rm -rf /opt/mqm

userdel -r mqm

 

 

检查MQ license

license文件在安装目录中 /opt/mqm/lib 可以找到

 

amqtcert.lic - is a trial license

amqbcert.lic - is a beta license

amqpcert.lic - is the proction license

——————————————————————————————————————

二、安装新版本ibm mq

解压,解压文件都在MQServer中

tar –xzvf IBM_MQ_9.1.5_LINUX_X86-64.tar.gz

 

进入MQServer文件夹中:

cd MQServer/

 

运行MQ许可证程序

./mqlicense.sh

 

安装WebSphere MQ for Linux服务器(Runtime、SDK 和 Server 软件包):

 rpm -U MQSeriesRuntime-9.1.5-0.x86_64.rpm

 rpm -U MQSeriesSDK-9.1.5-0.x86_64.rpm

 rpm -U MQSeriesServer-9.1.5-0.x86_64.rpm

 

 

安装WebSphere MQ for Linux客户机:

rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm

 

安装WebSphere MQ样本程序:

rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm

 

创建组和用户

安装过程创建了一个名为mqm的用户和一个同样名为 mqm 的组。设置一个密码来解锁。

passwd mqm

 

——————————————————————————————————————

三、 配置

(这部分队列管理器、通道、队列等根据实际情况自行配置)

切换用户:

su mqm

 

创建队列管理器

使用crtmqm命令来创建一个名为 SXRECV

的队列管理器。我们把它作为缺省队列,并且将不在创建时指定死信队列。然后使用strmqm命令启动队列管理器。

crtmqm -q  SXRECV

strmqm  SXRECV

 

——————

如果执行crtmqm命令时提示

-bash-3.2$ crtmqm

-bash: crtmqm: command not found

find / -name crtmqm

则需要配置mqm用户的环境变量,编辑如下文件,并添加下面的内容,如下:

第一种方法:相对第二种较安全仅对mqm用户有效

 

方法一:

(1) -bash-3.2$ vi /var/mqm/.bash_profile --有可能会在文件夹下看不到这个文件,通过编辑即可看到

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

(2)执行“.”命令,使这个文件生效

-bash-3.2$ source  .bash_profile

(3)再次尝试实行crtmqm或是dspmqm命令,即可发现已经生效。

 

方法二:

( 1)

su  root

[if !supportLists](2)[endif]

vim /etc/profile

[if !supportLists](3)[endif] 在最后面加上:

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin

( 4)关闭远程终端重新打开,无需重启服务器

——————

 

运行队列管理器

runmqsc SXRECV

 

创建通道和队列

DEFINE QLOCAL (XYDATA) REPLACE USAGE (NORMAL) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')

DEFINE QLOCAL (XYTRANS) REPLACE USAGE (XMITQ) DEFPSIST (YES) MAXDEPTH (300000) DESCR('兴业银行')

DEFINE QREMOTE (XYACK) REPLACE DEFPSIST (YES) RQMNAME (SXSEND)  RNAME (XYACK) XMITQ (XYTRANS) DESCR('XXXX')

DEFINE CHANNEL (XYDATA) CHLTYPE (RCVR) TRPTYPE (TCP) REPLACE DESCR('XXXX')

DEFINE CHANNEL (XYACK) CHLTYPE (SDR) CONNAME ('166.1.1.8(2214)') XMITQ (XYTRANS) TRPTYPE (TCP) DISCINT (0) CONVERT (NO) SHORTRTY (30) SHORTTMR (10) LONGRTY (999999999) LONGTMR (20) REPLACE DESCR('XXXX')

DEFINE CHANNEL (SVRCONN) CHLTYPE (SVRCONN) MCAUSER('mqm')

 

创建监听

DEFINE LISTENER (RECLISTENER) TRPTYPE (TCP) CONTROL(QMGR) PORT (2214)

启动监听

start LISTENER(RECLISTENER)

 

启动通道

start channel(SVRCONN)

start channel(XYDATA)

start channel(XYACK)

 

———————————————————————————————————————————————————

 

四、2035错误码 说明

如果程序连接mq报错2035,则需要对权限认证做设置,则进行以此操作

1、

ALTER QMGR CHLAUTH(DISABLED)

2、

ALTER CHL(通道名) CHLTYPE(SVRCONN) MCAUSER('mqm')

3、

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)

或者直接将连接认证选项置为空,将其完全关闭,指令如下:

ALTER QMGR CONNAUTH('')

 

在执行完上述两条命令中的任一条后,都需要刷新连接认证的缓存,指令如下:

REFRESH SECURITY TYPE(CONNAUTH)

五、mq操作命令

一、MQ的启动与停止

1、MQ的启动

strmqm QMgrName

如果启动默认队列管理器,strmqm后可以忽略队列管理器名称。

2、MQ的关闭

endmqm -i QMgrName

停止mq

二、MQ运行状态查看与常用操作

1、 查看队列管理器运行状态

su mqm

执行如下命令检查队列管理器运行状态:dspmq显示结果中QMNAME表示MQ队列管理器的名称,STATUS表示当前运行状态。运行状态有如下几种:Starting正在启动Running正在运行Ending正在停止Ended normally已经正常终止Ended immediately已经立即终止Ended preemtively已经强制终止Ended unexpectively异常终止

注意:停止MQ后必须使用dspmq命令进行状态检查

2、查看通道运行状态与启停通道

runmqsc

dis chl(*);查看所有通道定义

dis chs(*);查看所有通道状态,如果没有查询到通道状态,或报错AMQ8420: Channel Status not found,请启动通道

dis chs(ChannelName); 查看通道ChannelName的状态

通道状态有如下几种:

STARTING正在启动BINDING正在绑定INITIALIZING正在初始化RUNNING正常STOPPING 正在停止RETRYING重试PAUSED等待STOPPED已停止REQUESTING请求

start chl(ChannelName);启动通道

stop chl(ChannelName);停止通道

* 重置通道

reset channel(ChannelName); 重置通道序号。当本地与其他MQ队列管理器的通道无法正常启动的情况,检查日志发现是通道序号不一致,此时就需要先停止发送方通道,清空队列深度并在发送方和接收方进行通道计数的重置,重置后启动通道即可恢复通讯。

注意:重置成功mq序列号一般相同或相差1

3、查看通道监听状态与启停监听

runmqsc

dis listner(*);查看通道监听定义

dis lsstatu(listnerName);查看监听状态

start lstr(listnerName); 启动监听

stop lstr(listnerName); 停止监听 

4、查看队列深度

runmqsc

dis q(*);查看所有各类队列的属性

dis qlocal(QName);查看所有本地队列的属性

队列深度属性为:CURDEPTH

查看队列深度display ql('队列名')  curdepth

*清空队列深度

清空队列深度

clear ql(‘队列名’)

三、MQ发送和接收消息

su mqm

发送消息

amqsput  队列名  队列管理器

获取消息

amqsget  队列名  队列管理器

可通过配合查看队列深度命令,完成mq的联调

六、其他维护中常用linux命令

1、测试端口连接

telnet ip port

2、查看已启动的端口

netstat -an | grep 端口号

3、查看应用进程

ps -ef |grep java

4、修改权限

chomd  XXX(对应的权限)  文件目录

5、修改文件或目录下所有文件所有者和组

Chomd -R 用户名:组名  文件目录

6、查看目录内容

ls 或者ls -l (简写ll)

7、查看文件输出

cat 目录/文件名

或者

Vi 目录/文件名 按i可进入编辑

按 G 到文档末尾

按 gg 到文件首行

不保存退出

Esc   :q!

保存退出

Esc   :wq

vi 进入文档文档后查找关键字

Esc 进入命令行

/关键字

按n向下继续查找

按N向上继续查找

8、杀进程

Kill -9 进程号

9、复制

cp -r 源目录  目标目录

10、移动

mv  -i 源文件或目录 目标文件或目录

11、删除

 rm -R 文件目录

12、 切换工作目录

cd  相对路径或绝对路径

~也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

9. linux convert图片压缩

convert -density 150 aaa.png bbb.png-density 参数指定的是DPI,也就是分辩率。一般屏幕显示用72就足够了,150适用于大多数场合,300以上的分辩率就很高了。不清楚最高可以到多少。当然了,这些都只在原PDF是矢量的情况下才有比较好的效果,如果原PDF是点阵的,比如扫描的图书,那么更大的DPI造成的结果就是颗粒变大。

10. linux convert -resize 当指定的图片大小大于原图, 希望可以维持原图

-resize '200x100>'

只有当src.jpg的宽小于200或高小于100时候,才进行放大处理,否则生成的dest.jpg和src.jpg具有一样的尺寸。注意在linux下要用单引号替换双引号,即'200x100<'


参考:ImageMagick之图片缩放 简书博客网页链接

热点内容
存储器主要用来 发布:2025-05-10 15:17:34 浏览:427
两台服务器怎么部署redis 发布:2025-05-10 15:16:09 浏览:903
cocoa编程 发布:2025-05-10 15:15:18 浏览:181
中控导航什么配置好 发布:2025-05-10 15:15:07 浏览:790
个人网站的数据库 发布:2025-05-10 15:10:17 浏览:119
会编程好处 发布:2025-05-10 14:58:49 浏览:480
编程的过程 发布:2025-05-10 14:58:38 浏览:343
怎么退出服务器开机硬件监控 发布:2025-05-10 14:53:37 浏览:232
长虹安卓电视关闭网络在哪里 发布:2025-05-10 14:37:04 浏览:143
ubuntuhttp服务器的搭建 发布:2025-05-10 14:33:06 浏览:38