ค้นหาเว็บไซต์

วิธีเพิ่มประสิทธิภาพและบีบอัดรูปภาพ JPEG หรือ PNG ใน Linux Commandline


คุณมีรูปภาพจำนวนมาก และต้องการเพิ่มประสิทธิภาพและบีบอัดรูปภาพโดยไม่สูญเสียคุณภาพดั้งเดิมก่อนที่จะอัปโหลดไปยังคลาวด์หรือที่จัดเก็บในตัวเครื่อง มีแอปพลิเคชั่น GUI มากมายที่จะช่วยให้คุณปรับแต่งภาพให้เหมาะสมที่สุด อย่างไรก็ตาม ต่อไปนี้เป็นยูทิลิตีบรรทัดคำสั่งง่ายๆ สองรายการเพื่อเพิ่มประสิทธิภาพรูปภาพ ได้แก่:

  1. jpegoptim – เป็นโปรแกรมอรรถประโยชน์ในการเพิ่มประสิทธิภาพ/บีบอัดไฟล์ JPEG โดยไม่สูญเสียคุณภาพ
  2. OptiPNG – เป็นโปรแกรมขนาดเล็กที่ปรับภาพ PNG ให้เล็กลงโดยไม่สูญเสียข้อมูลใดๆ

การใช้เครื่องมือทั้งสองนี้ทำให้คุณสามารถเพิ่มประสิทธิภาพภาพเดียวหรือหลายภาพในแต่ละครั้งได้

บีบอัดหรือปรับภาพ JPEG จาก Command Line

jpegoptim เป็นเครื่องมือบรรทัดคำสั่งที่สามารถใช้เพื่อเพิ่มประสิทธิภาพและบีบอัดไฟล์ JPEG, JPG และ JFIF โดยไม่สูญเสียคุณภาพที่แท้จริง เครื่องมือนี้รองรับการเพิ่มประสิทธิภาพแบบไม่สูญเสียข้อมูล ซึ่งอิงตามการปรับตาราง Huffman ให้เหมาะสม

ติดตั้ง jpegoptim ใน Linux

หากต้องการติดตั้ง jpegoptim บนระบบ Linux ให้เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัลของคุณ

บน Debian และเป็นอนุพันธ์
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
บนระบบที่ใช้ RedHat

บนระบบที่ใช้ RPM เช่น RHEL, CentOS, Fedora ฯลฯ คุณต้องติดตั้งและเปิดใช้งานพื้นที่เก็บข้อมูล EPEL หรืออีกวิธีหนึ่ง คุณสามารถติดตั้ง epel พื้นที่เก็บข้อมูลโดยตรงจาก commandline ดังที่แสดง:

yum install epel-release
dnf install epel-release    [On Fedora 22+ versions]

ถัดไปให้ติดตั้งโปรแกรม jpegoptim จากพื้นที่เก็บข้อมูลดังภาพ:

yum install jpegoptim
dnf install jpegoptim    [On Fedora 22+ versions]

วิธีใช้เครื่องมือเพิ่มประสิทธิภาพรูปภาพ Jpegoptim

ไวยากรณ์ของ jpegoptm คือ:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

ตอนนี้เรามาบีบอัดรูปภาพ tecmint.jpeg ต่อไปนี้ แต่ก่อนที่จะเพิ่มประสิทธิภาพรูปภาพ ก่อนอื่นให้ค้นหาขนาดจริงของรูปภาพโดยใช้คำสั่ง du ตามที่แสดง

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

ที่นี่ขนาดไฟล์จริงคือ 6.2MB ตอนนี้บีบอัดไฟล์นี้โดยการเรียกใช้:

jpegoptim tecmint.jpeg 

เปิดภาพที่บีบอัดในแอปพลิเคชันดูรูปภาพ คุณจะไม่พบความแตกต่างที่สำคัญใดๆ รูปภาพต้นฉบับและรูปภาพที่บีบอัดจะมีคุณภาพเท่ากัน

คำสั่งดังกล่าวจะปรับภาพให้มีขนาดสูงสุดที่เป็นไปได้ อย่างไรก็ตาม คุณสามารถบีบอัดรูปภาพที่กำหนดให้เป็นขนาดที่ต้องการได้ แต่จะปิดใช้งานการเพิ่มประสิทธิภาพแบบไม่สูญเสียข้อมูล

ตัวอย่างเช่น ให้เราบีบอัดรูปภาพด้านบนจาก 5.6MB เหลือประมาณ 250k

jpegoptim --size=250k tecmint.jpeg

การบีบอัดและการเพิ่มประสิทธิภาพภาพ JPEG เป็นชุด

คุณอาจถามถึงวิธีบีบอัดรูปภาพในไดเร็กทอรีทั้งหมดซึ่งก็ไม่ยากเช่นกัน ไปที่ไดเร็กทอรีที่คุณมีรูปภาพ

tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ ls -l
total 65184
-rwxr----- 1 tecmint tecmint 6680532 Jan 19 12:21 DSC_0310.JPG
-rwxr----- 1 tecmint tecmint 6846248 Jan 19 12:21 DSC_0311.JPG
-rwxr----- 1 tecmint tecmint 7174430 Jan 19 12:21 DSC_0312.JPG
-rwxr----- 1 tecmint tecmint 6514309 Jan 19 12:21 DSC_0313.JPG
-rwxr----- 1 tecmint tecmint 6755589 Jan 19 12:21 DSC_0314.JPG
-rwxr----- 1 tecmint tecmint 6789763 Jan 19 12:21 DSC_0315.JPG
-rwxr----- 1 tecmint tecmint 6958387 Jan 19 12:21 DSC_0316.JPG
-rwxr----- 1 tecmint tecmint 6463855 Jan 19 12:21 DSC_0317.JPG
-rwxr----- 1 tecmint tecmint 6614855 Jan 19 12:21 DSC_0318.JPG
-rwxr----- 1 tecmint tecmint 5931738 Jan 19 12:21 DSC_0319.JPG

จากนั้นรันคำสั่งต่อไปนี้เพื่อบีบอัดรูปภาพทั้งหมดในครั้งเดียว

tecmint@tecmint ~/img $ jpegoptim *.JPG
DSC_0310.JPG 6000x4000 24bit N Exif  [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif  [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif  [OK] 7174430 --> 6536500 bytes (8.89%), optimized.
DSC_0313.JPG 6000x4000 24bit N Exif  [OK] 6514309 --> 5909840 bytes (9.28%), optimized.
DSC_0314.JPG 6000x4000 24bit N Exif  [OK] 6755589 --> 6144165 bytes (9.05%), optimized.
DSC_0315.JPG 6000x4000 24bit N Exif  [OK] 6789763 --> 6090645 bytes (10.30%), optimized.
DSC_0316.JPG 6000x4000 24bit N Exif  [OK] 6958387 --> 6354320 bytes (8.68%), optimized.
DSC_0317.JPG 6000x4000 24bit N Exif  [OK] 6463855 --> 5909298 bytes (8.58%), optimized.
DSC_0318.JPG 6000x4000 24bit N Exif  [OK] 6614855 --> 6016006 bytes (9.05%), optimized.
DSC_0319.JPG 6000x4000 24bit N Exif  [OK] 5931738 --> 5337023 bytes (10.03%), optimized.

คุณยังสามารถบีบอัดรูปภาพที่เลือกหลายภาพพร้อมกันได้:

$ jpegoptim DSC_0310.JPG DSC_0311.JPG DSC_0312.JPG 
DSC_0310.JPG 6000x4000 24bit N Exif  [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif  [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif  [OK] 7174430 --> 6536500 bytes (8.89%), optimized.

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือ jpegoptim โปรดดูที่หน้าคู่มือ

man jpegoptim 

บีบอัดหรือปรับภาพ PNG ให้เหมาะสมจาก Command Line

OptiPNG เป็นเครื่องมือบรรทัดคำสั่งที่ใช้ในการเพิ่มประสิทธิภาพและบีบอัดไฟล์ PNG (กราฟิกเครือข่ายแบบพกพา) โดยไม่สูญเสียคุณภาพดั้งเดิม

การติดตั้งและการใช้งาน OptiPNG นั้นคล้ายคลึงกับ jpegoptim มาก

ติดตั้ง OptiPNG ใน Linux

หากต้องการติดตั้ง OptiPNG บนระบบ Linux ให้เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัลของคุณ

บน Debian และเป็นอนุพันธ์
apt-get install optipng
or
sudo apt-get install optipng
บนระบบที่ใช้ RedHat
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

หมายเหตุ: คุณต้องเปิดใช้งาน พื้นที่เก็บข้อมูล epel บนระบบที่ใช้ RHEL/CentOS เพื่อติดตั้ง optipng โปรแกรม

วิธีใช้เครื่องมือเพิ่มประสิทธิภาพรูปภาพ OptiPNG

ไวยากรณ์ทั่วไปของ optipng คือ:

optipng filename.png
optipng [options] filename.png

ให้เราบีบอัดรูปภาพ tecmint.png แต่ก่อนที่จะเพิ่มประสิทธิภาพ ขั้นแรกให้ตรวจสอบขนาดจริงของรูปภาพตามที่แสดง:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw------- 1 tecmint tecmint 350K Jan 19 12:54 tecmint.png

ขนาดไฟล์จริงของภาพด้านบนคือ 350K ตอนนี้บีบอัดไฟล์นี้โดยการเรียกใช้:

tecmint@tecmint ~/img $ optipng tecmint.png 
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.

** Processing: tecmint.png
1493x914 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 357525 bytes
Input file size = 358098 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211

Output IDAT size = 249211 bytes (108314 bytes decrease)
Output file size = 249268 bytes (108830 bytes = 30.39% decrease)

ดังที่คุณเห็นในผลลัพธ์ด้านบน ขนาดของไฟล์ tecmint.png ลดลงเหลือ 30.39% ตอนนี้ตรวจสอบขนาดไฟล์อีกครั้งโดยใช้:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw-r--r-- 1 tecmint tecmint 244K Jan 19 12:56 tecmint.png

เปิดรูปภาพที่บีบอัดในแอปพลิเคชันดูรูปภาพ คุณจะไม่พบความแตกต่างที่สำคัญระหว่างไฟล์ต้นฉบับและไฟล์บีบอัด รูปภาพต้นฉบับและรูปภาพที่บีบอัดจะมีคุณภาพเท่ากัน

การบีบอัดและการเพิ่มประสิทธิภาพภาพ PNG เป็นกลุ่ม

หากต้องการบีบอัดภาพ PNG เป็นชุดหรือหลายภาพในคราวเดียว เพียงไปที่ไดเร็กทอรีที่มีภาพทั้งหมดอยู่และเรียกใช้คำสั่งต่อไปนี้เพื่อบีบอัด

tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ optipng *.png

OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.

** Processing: Debian-8.png
720x345 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 95151 bytes
Input file size = 95429 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388

Output IDAT size = 81388 bytes (13763 bytes decrease)
Output file size = 81642 bytes (13787 bytes = 14.45% decrease)

** Processing: Fedora-22.png
720x345 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 259678 bytes
Input file size = 260053 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 5		IDAT size = 222479
  zc = 9  zm = 8  zs = 1  f = 5		IDAT size = 220311
  zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744
                               
Selecting parameters:
  zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744

Output IDAT size = 216744 bytes (42934 bytes decrease)
Output file size = 217035 bytes (43018 bytes = 16.54% decrease)
....

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ optipng ตรวจสอบหน้าคน

man optipng

บทสรุป

หากคุณเป็นผู้ดูแลเว็บและต้องการแสดงรูปภาพที่ได้รับการปรับปรุงบนเว็บไซต์หรือบล็อกของคุณ เครื่องมือเหล่านี้มีประโยชน์มาก เครื่องมือเหล่านี้ไม่เพียงแต่ช่วยประหยัดพื้นที่ดิสก์ แต่ยังช่วยลดแบนด์วิดท์ในขณะที่อัพโหลดภาพอีกด้วย

หากคุณรู้วิธีอื่นที่ดีกว่าในการบรรลุสิ่งเดียวกัน โปรดแจ้งให้เราทราบผ่านความคิดเห็น และอย่าลืมแบ่งปันบทความนี้บนโซเชียลเน็ตเวิร์กของคุณและสนับสนุนเรา