Weboldal keresés

4 módszer a PNG kötegelt konvertálására JPG-vé és fordítva


A számítástechnikában a kötegelt feldolgozás egy program feladatsorának nem interaktív végrehajtása. Ez az útmutató 4 egyszerű módszert kínál számos .PNG kép kötegelt konvertálására .JPG formátumba és fordítva, Linux parancssori eszközök használatával.

Az összes példában a convert parancssori eszközt fogjuk használni, de használhatja a mogrify funkciót is ennek eléréséhez.

A konvertálás használatának szintaxisa a következő:

convert input-option input-file output-option output-file

A mogrify esetében pedig:

mogrify options input-file

Megjegyzés: A mogrify funkcióval alapértelmezés szerint az eredeti képfájl lecserélődik az új képfájlra, de ez megakadályozható bizonyos beállításokat használva, amelyeket a man oldalon talál.

Az alábbiakban bemutatjuk az összes .PNG kép .JPG formátumba való kötegelt konvertálásának különböző módjait, ha a .JPG fájlt formátumba szeretné konvertálni .PNG, a parancsokat igény szerint módosíthatja.

1. Konvertálja a PNG-t JPG-be az „ls” és „xargs” parancsok használatával

Az ls parancs lehetővé teszi az összes png kép felsorolását, az xargs pedig lehetővé teszi egy convert parancs létrehozását és végrehajtását normál bemenetről az összes konvertálásához .png képek a .jpg formátumba.

----------- Convert PNG to JPG ----------- 
ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'

----------- Convert JPG to PNG ----------- 
ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

Magyarázat a fenti parancsban használt beállításokról.

  1. -1 – jelző jelzi az ls-nek, hogy soronként egy képet jelenítsen meg.
  2. -n – az argumentumok maximális számát adja meg, amely az esetre 1.
  3. -c – utasítja a bash-t az adott parancs futtatására.
  4. $ {0%.png}.jpg – beállítja az új konvertált kép nevét, a % jel segít eltávolítani a régi fájlkiterjesztést.

Az ls -ltr parancsot használtam az összes fájl listázásához a módosított dátum és idő szerint.

Hasonlóképpen a fenti paranccsal konvertálhatja az összes .jpg képét .png formátumba a fenti parancs módosításával.

2. Konvertálja a PNG-t JPG-be a GNU „Parallel” paranccsal

A GNU Parallel lehetővé teszi a felhasználó számára, hogy párhuzamosan építsen fel és hajtson végre shell-parancsokat szabványos bemenetről. Győződjön meg arról, hogy a GNU Parallel telepítve van a rendszeren, ellenkező esetben telepítse az alábbi megfelelő parancsok segítségével:

sudo apt-get install parallel     [On Debian/Ubuntu systems]
sudo yum install parallel         [On RHEL/CentOS and Fedora]

A Parallel segédprogram telepítése után a következő parancs futtatásával az összes .png képet .jpg formátumba konvertálja a szabványos bemenetről.

----------- Convert PNG to JPG ----------- 
parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
parallel convert '{}' '{.}.png' ::: *.jpg

Ahol,

  1. {} – bemeneti sor, amely egy helyettesítő karakterlánc, amelyet a bemeneti forrásból kiolvasott teljes sor helyettesít.
  2. {.} – bemeneti sor mínusz kiterjesztés.
  3. ::: – megadja a bemeneti forrást, azaz a parancssort a fenti példához, ahol a *png vagy *jpg az argumentum.

Alternatív megoldásként használhatja az ls és a párhuzamos parancsokat is az összes kép kötegelt konvertálásához, az ábrán látható módon:

----------- Convert PNG to JPG ----------- 
ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- Convert JPG to PNG -----------
ls -1 *.jpg | parallel convert '{}' '{.}.png'

3. PNG konvertálása JPG-be a „for loop” paranccsal

A shell-szkriptek írásának nyüzsgésének elkerülése érdekében végrehajthat egy for loop parancsot a parancssorból az alábbiak szerint:

----------- Convert PNG to JPG ----------- 
bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- Convert JPG to PNG -----------
bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

A fenti parancsban használt egyes opciók leírása:

  1. A -c lehetővé teszi a for ciklus utasítás egyszeri idézőjelben történő végrehajtását.
  2. Az image változó a könyvtárban lévő képek számának számlálója.
  3. Az echo parancs minden átalakítási műveletnél tájékoztatja a felhasználót, hogy egy png-kép jpg formátumba lett konvertálva, és fordítva, a $image sorban & formátumra konvertálva. #36 {image%.png}.jpg”.
  4. Az „$ {image%.png}.jpg” létrehozza a konvertált kép nevét, ahol a % eltávolítja a régi képformátum kiterjesztését.

4. PNG konvertálása JPG-be Shell Script segítségével

Ha nem szeretné, hogy a parancssor piszkos legyen, mint az előző példában, írjon egy kis szkriptet, például:

Megjegyzés: Megfelelően cserélje fel a .png és .jpg kiterjesztést az alábbi példa szerint, ha egy formátumból szeretne konvertálni. másikba.

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

Mentse el convert.sh néven, tegye végrehajthatóvá a szkriptet, majd futtassa a képeket tartalmazó könyvtárból.

chmod +x convert.sh
./convert.sh

Összefoglalva, bemutattunk néhány fontos módszert a .png képek kötegelt konvertálására .jpg formátumra és fordítva. Ha optimalizálni szeretné a képeket, nézze meg útmutatónkat, amely bemutatja, hogyan lehet png és jpg formátumú képeket tömöríteni Linux alatt.

Megoszthat velünk bármilyen más módszert is, beleértve a Linux parancssori eszközöket a képek egyik formátumból a másikba való konvertálásához a terminálon, vagy feltehet kérdést az alábbi megjegyzés részben.