ใช่ GIF แบบเก่าที่ดี ชอบความเก่งกาจ, เกลียดการจดสิทธิบัตรและล้าสมัยบางส่วนเนื่องจากข้อ จำกัด ของมัน (และสิทธิบัตร), GIF ประกอบด้วยที่แกนกลาง, จานสีและภาพดัชนีที่ถูกบีบอัดโดยใช้อัลกอริทึม LZW
งานของคุณคือการเขียนโปรแกรมที่อ่านภาพในรูปแบบASCII PPM (หมายเลขมายากล "P3") จากอินพุตมาตรฐานและเขียนภาพเดียวกัน (พิกเซลเหมือนกันโดยพิกเซล) ในรูปแบบ GIF ไปยังเอาต์พุตมาตรฐาน เอาต์พุตสามารถอยู่ในรูปแบบไบนารีหรือข้อความ ASCII ที่มีแต่ละไบต์แทนด้วยตัวเลขระหว่าง 0 ถึง 255 (รวม) โดยคั่นด้วยช่องว่าง
รับประกันภาพอินพุตไม่ให้มีสีต่างกันมากกว่า 256 สี
เกณฑ์การให้คะแนน:
โปรแกรมของคุณจะถูกทดสอบใน 3 ภาพตัวอย่างและคะแนนของคุณจะถูกคำนวณเป็น:
ขนาดโปรแกรม + ผลรวม (ขนาดผลงาน - ขนาดอ้างอิงสำหรับภาพตัวอย่างแต่ละภาพ)
คะแนนต่ำสุดชนะ
ที่ต้องการ:
- โปรแกรมของคุณจะต้องทำงานกับรูปภาพประเภทต่างๆขนาดใกล้เคียงกันและไม่ จำกัด เฉพาะภาพตัวอย่าง ตัวอย่างเช่นคุณสามารถ จำกัด ขนาดให้เป็นทวีคูณของ 2 หรือสมมติว่าสีสูงสุด ppm คือ 255 แต่ก็ยังควรใช้งานได้กับภาพอินพุตที่หลากหลาย
- เอาต์พุตต้องเป็นไฟล์ GIF ที่ถูกต้องที่สามารถโหลดได้ด้วยโปรแกรมที่เข้ากันได้ (หลังจากแปลงกลับเป็นไบนารี่หากใช้ตัวเลือกเอาต์พุต ASCII)
- คุณไม่สามารถใช้ฟังก์ชั่นการประมวลผลภาพใด ๆ (ในตัวหรือบุคคลที่สาม) โปรแกรมของคุณจะต้องมีรหัสที่เกี่ยวข้องทั้งหมด
- โปรแกรมของคุณต้องสามารถรันได้ใน Linux โดยใช้ซอฟต์แวร์ที่มีให้ฟรี
- ซอร์สโค้ดต้องใช้อักขระ ASCII เท่านั้น
ภาพตัวอย่าง:
นี่คือภาพตัวอย่าง 3 ภาพที่จะใช้ในการทำคะแนน คุณสามารถดาวน์โหลดไฟล์ zip ด้วยไฟล์ ppm (ใช้ปุ่มดาวน์โหลดที่ด้านบนของหน้านั้น) หรือคุณสามารถแปลงไฟล์เหล่านี้จากภาพ png ด้านล่างโดยใช้ ImageMagick ด้วยคำสั่งต่อไปนี้:
convert file.png -compress none file.ppm
ฉันยังให้การตรวจสอบ MD5 ของไฟล์ ppm เพื่อการยืนยัน
1. อำพัน
ขนาดอ้างอิง: 38055
MD5 การตรวจสอบ ppm: d1ad863cb556869332074717eb278080
2. สีน้ำเงิน
ขนาดอ้างอิง: 28638
MD5 checksum ของ ppm: e9ad410057a5f6c25a22a534259dcf3a
3. พริก
ขนาดอ้างอิง: 53586
MD5 checksum ของ ppm: 74112dbdbb8b7de5216f9e24c2e1a627