linuxconvert
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之圖片縮放 簡書博客網頁鏈接