Sunday, July 25, 2004

ลดขนาดไฟล์ PNG

ตื่นเช้ามาอ่านเวบบอร์ด TLWG เขาคุยกันเรื่อง Transparent PNG เลยคลิกตาม Link หาอะไรอ่านไปเรื่อย จนไปเจอโปรแกรม pngout ที่บอกว่าลดขนาด PNG ลงได้อีกประมาณ 5-10%

Download binary สำหรับ Linux (เขายังไม่แจก Source) น่าสนใจดีตรงที่ตัว Binary เองนี้ เขาบีบอัดข้อมูลเอาไว้ด้วยโปรแกรม UPX ตอนเรียก exec ไฟล์นี้มาทำงาน ตัวขยายข้อมูลก็จะทำงานก่อน ขยายโปรแกรมออกมาอัตโนมัติแล้วค่อยรัน นึกถึงอดีตว่าเคยใช้โปรแกรมทำนองนี้เหมือนกันบน DOS สมัยยังไม่มี Harddisk เล่นทุกอย่างบน Floppy

กลับมาที่โปรแกรม pngout ไฟล์แรกที่ลองคือแผนผังสมาชิกในครอบครัว (Family Tree) ที่เคยใช้ VCG วาดเอาไว้โดยดึงข้อมูลจาก MySQL ตอนนี้มีอยู่ประมาณ 145 โหนด (คน) เอามาวาดเป็นกราฟพร้อมแสดงรูปถ่ายได้ไฟล์ภาพขนาด 1608x7774 จุด ทำเป็น PNG ได้ขนาด 80794 ไบต์ (ซึ่งก็ไม่โตอะไรมากมาย)

เอาไฟล์นี้แหละมาลอง pngout ดู

pngout-static-20040716 foo1.png foo2.png
รันตั้งแต่ก่อนเริ่มเขียน Blog นี้ เวลาผ่านไป 20+ นาที บนเครื่อง P4-2.4 นับ 0-100% ไปสามรอบแล้ว ได้ไฟล์ใหม่ออกมาเหลือ 58139 ไบต์

ขนาดลดลงไปเยอะเหมือนกัน แต่ให้รอนานมากไปหน่อย

No comments: