在 Linux 下將 PNG 和 JPG 批次互轉的四種方法
雖然所有示例中我們使用的都是
convert
行工具,但是您也可以使用
mogrify 命令來達到同樣的效果。
convert 命令的語法如下:
$ convert 輸入選項 輸入檔案 輸出選項 輸出檔案
mogrify的為:
$ mogrify 選項 輸入檔案
注意:在使用
mogrify命令時,預設情況下源影像檔案會被轉換後的新檔案覆蓋掉,您可以使用明確的操作選項來禁止覆蓋,具體的選項可以在手冊頁中查詢得到。
下面是把所有
.PNG 格式影像批次轉換為
.JPG 格式的各種實現方式。如果想把
.JPG轉換為
.PNG 格式,也可使用這些命令,按需修改。
ls 命令 可以列出所有的 png 影像檔案, xargs使得可以從標準輸入構建和執行convert命令,從而將所有 .png影像轉換為 .jpg 影像。
----------- 從 PNG 轉換到 JPG ----------- $ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"' ----------- 從 JPG 轉換到 PNG ----------- $ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'
關於上面命令選項的說明:
-1 -告訴 ls 每行列出一個影像名稱的選項標識 -n – 指定最多引數個數,例子中為 1 -c – 指示 bash 執行給定的命令 ${0%.png}.jpg – 設定新轉換的影像檔案的名字,% 符號用來刪除原始檔的副檔名
Linux 中 PNG 格式轉為 JPG 格式
我使用
ls -ltr命令按修改的日期和時間列出所有檔案。
類似的,也可以使用上面的命令要把
.JPG影像轉換為
.PNG 格式,只需稍微調整就行。
GNU 的 parallel 使使用者能夠從標準輸入並行構建和執行 命令。確保您的系統上安裝了 GNU Parallel,否則請使用以下適當的命令進行安裝:
$ sudo apt-get install parallel [在 Debian/Ubuntu 系統中] $ sudo yum install parallel [在 RHEL/CentOS 和 Fedora 系統中]
安裝好 parallel工具後,您就可以執行下面的命令來把所有從標準輸入的 .PNG 影像轉換成 .JPG格式的影像。
----------- 從 PNG 轉換到 JPG ----------- $ parallel convert '{}' '{.}.jpg' ::: *.png ----------- 從 JPG 轉換到 PNG ----------- $ parallel convert '{}' '{.}.png' ::: *.jpg
其中:
{} – 輸入行替代符,代替了從輸入源讀取的完整行。 {.} – 去除副檔名的輸入行。 ::: – 指定輸入源的符號,即上面示例的命令列,在這裡 png 或 jpg 是命令引數。
Parallel 命令 – 把所有 PNG 影像轉換為 JPG 格式
或者,您也可以結合 ls 和
parallel命令來批次轉換所有影像,如圖所示:
----------- 從 PNG 轉換到 JPG ----------- $ ls -1 *.png | parallel convert '{}' '{.}.jpg' ----------- 從 JPG 轉換到 PNG ----------- $ ls -1 *.jpg | parallel convert '{}' '{.}.png'
為了避免編寫 shell 的繁瑣,你可以從命令列執行 for迴圈語句,如下所示:
----------- 從 PNG 轉換到 JPG ----------- $ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done' ----------- 從 JPG 轉換到 PNG ----------- $ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'
對上面的命令所使用的選項引數的描述:
-c 允許執行包括在單引號中的迴圈語句。 image 變數是目錄中的影像名的數量記數器。 對於每個轉換操作,在 $image 轉換為 ${image%.png}.jpg 這行中,echo 命令通知使用者 png 影像已經轉換為 jpg 格式,反之亦然。 ${image%.png}.jpg 語句建立了轉換後的影像名字,其中 % 表示去除源影像檔案的副檔名。
for 迴圈語句 – 從 PNG 轉換到 JPG 格式
如果你不想像前面的例子那樣讓你的命令列變得邋遢的話,可以寫一個小指令碼,如下所示:
注意:適當地交換
.png 和
.jpg副檔名,如下面的例子所示,從一種格式轉換到另一種格式:
#!/bin/bash #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo “image $image converted to ${image%.png}.jpg ” done exit 0
把上面的指令碼儲存為convert.sh convert.sh檔案,然後使此指令碼檔案可執行,接著從存有影像檔案的目錄下執行。
$ chmod +x convert.sh $ ./convert.sh
使用 Shell 指令碼來批次影像轉換
總之,我們介紹了一些重要的將
.PNG影像批次轉換為
.JPG格式的方法,以及再轉回來。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2939219/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在matlab中如何將圖片(png和jpg)轉成mat格式Matlab
- 將UIView轉成UIImage,將UIImage轉成PNG/JPGUIView
- 如何將HEIC轉換為JPG / JPEG或PNG?
- 如何使用Super Vectorizer在 Mac 上將 PNG、JPG等轉換為 SVGMacSVG
- png格式批量轉換jpg有什麼方法
- Python 將Word轉換為JPG、PNG、SVG圖片PythonSVG
- 使用Python實現批次PPT轉圖片,格式支援PNG、JPG,轉後圖片後批次重新命名Python
- png轉jpg,常用格式怎麼互相轉換
- 如何使用Mac預覽程式將png轉換為jpg格式的技巧分享Mac
- win10 png怎麼修改成jpg_win10如何把png轉換成jpgWin10
- png圖片怎麼轉換成jpg 電腦上怎麼把png格式改成jpg
- JPG轉PDF如何實現?圖片批次轉換PDF的快捷方法
- Java實現emf轉jpg png 圖片轉換Java
- win10怎麼png轉jpg格式 win10系統png怎麼轉換成jpg圖片Win10
- png是什麼格式 png和jpg有什麼區別
- linux下檢視mysql版本的四種方法LinuxMySql
- PyCharm中批次註釋常用的四種方法!PyCharm
- livp怎麼轉jpg 如何將live照片格式在電腦上轉換為jpg
- vnc批次登入,2種VNC批次登入Linux的方法VNCLinux
- Linux系統下檢視mysql版本的四種方法LinuxMySql
- 分享三種jpg轉換成pdf格式的方法,每一種都好用
- Linux下域名IP互轉Linux
- 批次殺死MySQL連線的四種方法詳解MySql
- 聊一聊幾種常用web圖片格式:gif、jpg、png、webpWeb
- Java 將PDF/XPS轉為Word/html /SVG/PS/PCL/PNG、PDF和XPS互轉(基於Spire.Cloud.SDK for Java)JavaHTMLSVGCloud
- Photoshop將png轉為ico圖示
- JavaScript 字串與json物件互轉的幾種方法JavaScript字串JSON物件
- 四種在Javascript比較物件的方法JavaScript物件
- 常見圖片格式:PNG,JPG/JPEG,BMP
- ServletOutputStream在nginx轉發下輸出檔案下載的一種方法ServletNginx
- 四種OS下安裝Docker的方法Docker
- 【java】int轉換成String的四種方法Java
- linux將掛載在home目錄下的磁碟轉移到根目錄下Linux
- Linux埠轉發的幾種常用方法Linux
- 四種將Word轉換為HTML的線上工具HTML
- Java中轉義HTML符號的四種方法JavaHTML符號
- 怎麼將bmp格式圖片轉換jpg格式的
- 如何將heic格式轉換成jpg圖片?