หากรูปภาพมีค่า 1,000 คำคุณสามารถบรรจุรูปภาพได้เท่าใดใน 140 ตัวอักษร?
หมายเหตุ : นั่นคือคน! Bounty เส้นตายอยู่ที่นี่และหลังจากใคร่ครวญยากผมได้ตัดสินใจว่ารายการ Boojum ของเพียงแค่ขยับตัวแทบไม่ออกแซม Hocevar ฉันจะโพสต์บันทึกรายละเอียดเพิ่มเติมเมื่อฉันมีโอกาสเขียนขึ้น แน่นอนว่าทุกคนควรรู้สึกยินดีที่จะส่งโซลูชั่นต่อไปและปรับปรุงวิธีแก้ปัญหาเพื่อให้ผู้คนโหวต ขอบคุณทุกคนที่ส่งและเข้าร่วม; ฉันสนุกกับมันทั้งหมด มันสนุกมากสำหรับฉันที่จะวิ่งและฉันหวังว่ามันจะสนุกสำหรับทั้งผู้เข้าแข่งขันและผู้ชม
ฉันเจอโพสต์ที่น่าสนใจเกี่ยวกับการพยายามบีบอัดรูปภาพเป็นความคิดเห็น Twitter และผู้คนจำนวนมากในชุดข้อความนั้น (และกระทู้ใน Reddit ) มีคำแนะนำเกี่ยวกับวิธีการต่าง ๆ ที่คุณสามารถทำได้ ดังนั้นฉันคิดว่ามันจะเป็นการเขียนโค้ดที่ท้าทาย ให้คนเอาเงินใส่ปากและแสดงให้เห็นว่าความคิดของพวกเขาเกี่ยวกับการเข้ารหัสสามารถนำไปสู่รายละเอียดมากขึ้นในพื้นที่ จำกัด ที่คุณมี
ฉันขอให้คุณสร้างระบบจุดประสงค์ทั่วไปสำหรับการเข้ารหัสภาพเป็นข้อความ Twitter จำนวน 140 ตัวและถอดรหัสให้เป็นภาพอีกครั้ง คุณสามารถใช้อักขระ Unicode เพื่อให้คุณได้รับมากกว่า 8 บิตต่ออักขระ แม้จะอนุญาตให้ใช้อักขระ Unicode ได้คุณจะต้องบีบอัดรูปภาพให้มีขนาดเล็กมาก สิ่งนี้จะเป็นการบีบอัดที่สูญเสียไปอย่างแน่นอนและดังนั้นจะต้องมีการตัดสินตามอัตวิสัยว่าผลลัพธ์แต่ละอย่างนั้นดูดีแค่ไหน
นี่คือผลลัพธ์ที่ผู้แต่งดั้งเดิมQuasimondoได้รับจากการเข้ารหัสของเขา (ภาพได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบแสดงที่มา - ไม่ใช่เพื่อการค้า ):
คุณทำได้ดีกว่านี้ไหม
กฎระเบียบ
- โปรแกรมของคุณจะต้องมีสองโหมด: การเข้ารหัสและการถอดรหัส
- เมื่อเข้ารหัส :
- โปรแกรมของคุณจะต้องป้อนกราฟิกในรูปแบบกราฟิกแรสเตอร์ใด ๆ ที่คุณต้องการ เราจะบอกว่ารูปแบบแรสเตอร์ใด ๆ ที่สนับสนุนโดยImageMagickนับว่าสมเหตุสมผล
- โปรแกรมของคุณจะต้องส่งข้อความที่สามารถแสดงในจุดรหัส Unicode ได้ 140 จุดหรือน้อยกว่านั้น 140 จุดรหัสในช่วง
U+0000
-U+10FFFF
ไม่รวมตัวละครที่ไม่ใช่ (U+FFFE
,U+FFFF
,U+
nFFFE
,U+
nFFFF
ที่nคือ1
-10
เลขฐานสิบหกและช่วงU+FDD0
-U+FDEF
) และจุดรหัสตัวแทน (U+D800
-U+DFFF
) มันอาจจะส่งออกในการเข้ารหัสที่เหมาะสมที่คุณเลือก; การเข้ารหัสใด ๆ ที่สนับสนุนโดยGNUiconv
จะถือว่าสมเหตุสมผลและการเข้ารหัสดั้งเดิมของแพลตฟอร์มของคุณหรือการเข้ารหัสตำแหน่งที่ตั้งอาจเป็นตัวเลือกที่ดี ดูหมายเหตุ Unicodeด้านล่างสำหรับรายละเอียดเพิ่มเติม
- เมื่อถอดรหัส :
- โปรแกรมของคุณควรใช้เป็นอินพุตเอาต์พุตของโหมดการเข้ารหัสของคุณ
- โปรแกรมของคุณจะต้องแสดงผลภาพในรูปแบบที่เหมาะสมตามที่คุณเลือกตามที่กำหนดไว้ข้างต้น
- เอาท์พุทภาพควรจะประมาณของภาพอินพุต; ยิ่งคุณเข้าใกล้ภาพอินพุตมากเท่าไหร่ก็ยิ่งดีเท่านั้น
- กระบวนการถอดรหัสอาจไม่มีสิทธิ์เข้าถึงเอาต์พุตอื่น ๆ ของกระบวนการเข้ารหัสนอกเหนือจากเอาต์พุตที่ระบุข้างต้น นั่นคือคุณไม่สามารถอัปโหลดภาพที่ใดที่หนึ่งและส่งออก URL สำหรับกระบวนการถอดรหัสที่จะดาวน์โหลดหรืออะไรทำนองนั้น
เพื่อความสอดคล้องในส่วนต่อประสานผู้ใช้โปรแกรมของคุณจะต้องปฏิบัติดังนี้:
- โปรแกรมของคุณจะต้องเป็นสคริปต์ที่สามารถตั้งค่าให้ปฏิบัติการบนแพลตฟอร์มที่มีล่ามที่เหมาะสมหรือโปรแกรมที่สามารถคอมไพล์เป็นไฟล์ปฏิบัติการ
- โปรแกรมของคุณจะต้องเป็นอาร์กิวเมนต์แรก
encode
หรือdecode
เพื่อตั้งค่าโหมด โปรแกรมของคุณต้องป้อนข้อมูลด้วยวิธีใดวิธีหนึ่งต่อไปนี้ (ถ้าคุณใช้ชื่อไฟล์คุณสามารถอ่านและเขียนจาก stdin และ stdout หากชื่อไฟล์หายไป):
รับอินพุตจากมาตรฐานเข้าและสร้างเอาต์พุตตามมาตรฐาน
my-program encode <input.png >output.txt my-program decode <output.txt >output.png
รับอินพุตจากไฟล์ที่มีชื่อในอาร์กิวเมนต์ที่สองและสร้างเอาต์พุตในไฟล์ที่มีชื่อในอาร์กิวเมนต์ที่สาม
my-program encode input.png output.txt my-program decode output.txt output.png
- สำหรับวิธีการแก้ปัญหาของคุณกรุณาโพสต์:
- รหัสของคุณเต็มและ / หรือลิงก์ไปยังโฮสต์ที่อื่น (ถ้ามันยาวมากหรือต้องใช้ไฟล์หลายไฟล์ในการคอมไพล์หรือบางอย่าง)
- คำอธิบายวิธีการใช้งานหากไม่ชัดเจนในทันทีจากรหัสหรือหากรหัสยาวและผู้คนจะสนใจสรุป
- ตัวอย่างรูปภาพที่มีรูปภาพต้นฉบับข้อความที่บีบอัดลงไปและรูปภาพที่ถอดรหัส
- หากคุณกำลังสร้างความคิดที่คนอื่นมีโปรดระบุพวกเขา มันเป็นการตกลงที่จะพยายามปรับแต่งความคิดของคนอื่น แต่คุณต้องให้ความสำคัญกับพวกเขา
แนวทาง
โดยทั่วไปเป็นกฎที่อาจทำให้เสียคำแนะนำหรือเกณฑ์การให้คะแนน:
- สุนทรียศาสตร์มีความสำคัญ ฉันจะตัดสินและแนะนำให้คนอื่นตัดสินตาม:
- ภาพที่ได้ออกมาดูดีขนาดไหนและมีลักษณะเหมือนภาพต้นฉบับมากแค่ไหน
- ข้อความดูดีแค่ไหน gobbledigook สุ่มโดยสมบูรณ์นั้นโอเคถ้าคุณมีรูปแบบการบีบอัดที่ฉลาดจริงๆ แต่ฉันต้องการเห็นคำตอบที่ทำให้ภาพกลายเป็นบทกวีหลายภาษาหรือสิ่งที่ฉลาดเช่นนั้น โปรดทราบว่าผู้เขียนโซลูชันดั้งเดิมตัดสินใจใช้ตัวอักษรจีนเท่านั้นเนื่องจากดูดีกว่าเช่นนั้น
- รหัสที่น่าสนใจและอัลกอริทึมที่ชาญฉลาดนั้นดีเสมอ ฉันชอบสั้น ๆ ตรงประเด็นและรหัสที่ชัดเจน แต่อัลกอริทึมที่ซับซ้อนจริงๆก็โอเคตราบใดที่พวกเขาให้ผลลัพธ์ที่ดี
- ความเร็วก็สำคัญเช่นกัน แต่ไม่สำคัญเท่ากับงานบีบอัดภาพที่คุณทำ ฉันควรมีโปรแกรมที่สามารถแปลงภาพในสิบวินาทีกว่าสิ่งที่จะใช้อัลกอริทึมทางพันธุกรรมสำหรับวันที่สิ้นสุด
- ฉันจะชอบวิธีแก้ปัญหาที่สั้นกว่าสำหรับผลิตภัณฑ์ที่มีความยาวมากกว่าตราบใดที่คุณภาพเทียบเคียงได้อย่างสมเหตุสมผล ความรัดกุมเป็นคุณธรรม
- โปรแกรมของคุณควรใช้งานในภาษาที่มีการติดตั้งใช้งานฟรีบน Mac OS X, Linux หรือ Windows ฉันต้องการที่จะสามารถเรียกใช้โปรแกรม แต่ถ้าคุณมีทางออกที่ดีที่ทำงานภายใต้MATLABหรือบางสิ่งเท่านั้นมันก็ใช้ได้
- โปรแกรมของคุณควรกว้างที่สุดเท่าที่จะเป็นไปได้ ควรใช้รูปภาพที่แตกต่างกันมากที่สุดเท่าที่จะเป็นไปได้แม้ว่าบางภาพอาจให้ผลลัพธ์ที่ดีกว่าภาพอื่น ๆ โดยเฉพาะอย่างยิ่ง:
- การมีอิมเมจสองสามตัวในโปรแกรมที่จับคู่และเขียนการอ้างอิงแล้วสร้างอิมเมจที่ตรงกันเมื่อทำการถอดรหัสนั้นเป็นสิ่งที่ค่อนข้างง่อยและจะครอบคลุมเฉพาะบางภาพเท่านั้น
- โปรแกรมที่สามารถถ่ายภาพของรูปทรงที่เรียบง่ายรูปทรงเรขาคณิตและย่อยสลายลงในเวกเตอร์ดั้งเดิมบางอันก็สวยดี แต่ถ้ามันล้มเหลวในภาพที่เกินความซับซ้อนบางอย่างมันอาจเป็นเรื่องทั่วไปที่ไม่เพียงพอ
- โปรแกรมที่สามารถถ่ายภาพในอัตราส่วนภาพคงที่โดยเฉพาะเท่านั้น
- คุณอาจพบว่าภาพขาวดำสามารถรับข้อมูลเพิ่มเติมในพื้นที่ขนาดเล็กกว่าภาพสี ในทางกลับกันนั่นอาจ จำกัด ประเภทของภาพที่ใช้ได้ ใบหน้าออกมาดีในสีดำและสีขาว แต่การออกแบบที่เป็นนามธรรมอาจไม่ดีนัก
- มันสมบูรณ์ดีถ้าภาพที่ออกมีขนาดเล็กกว่าอินพุทในขณะที่สัดส่วนประมาณเดียวกัน ไม่เป็นไรถ้าคุณต้องขยายภาพเพื่อเปรียบเทียบกับต้นฉบับ สิ่งที่สำคัญคือรูปลักษณ์
- โปรแกรมของคุณควรสร้างผลลัพธ์ที่สามารถผ่าน Twitter ได้และไม่ได้รับอันตราย นี่เป็นเพียงแนวทางมากกว่ากฎเนื่องจากฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับชุดอักขระที่รองรับได้อย่างแม่นยำ แต่คุณควรหลีกเลี่ยงอักขระควบคุมอักขระรวมที่มองไม่เห็นขี้ขลาดตัวอักษรใช้งานส่วนตัวและสิ่งที่คล้ายกัน
เกณฑ์การให้คะแนน
ตามคู่มือทั่วไปเกี่ยวกับวิธีการจัดอันดับโซลูชันเมื่อเลือกโซลูชันที่ยอมรับของฉันสมมติว่าฉันอาจจะประเมินโซลูชันในระดับ 25 จุด (นี่หยาบมากและฉันจะไม่ให้คะแนนอะไรเลยเพียงแค่ใช้ นี่เป็นแนวทางพื้นฐาน):
- 15 คะแนนสำหรับรูปแบบการเข้ารหัสที่สร้างภาพอินพุตที่หลากหลายได้ดีเพียงใด นี่เป็นการตัดสินใจเชิงอัตวิสัยและสุนทรียภาพ
- 0 หมายความว่ามันใช้งานไม่ได้เลยมันให้ภาพเหมือนเดิมทุกครั้งหรือบางสิ่งบางอย่าง
- 5 หมายความว่ามันสามารถเข้ารหัสภาพได้ไม่กี่ภาพแม้ว่ารุ่นถอดรหัสจะดูน่าเกลียดและอาจไม่ทำงานเลยในภาพที่ซับซ้อนมากขึ้น
- 10 หมายความว่าใช้งานได้กับภาพที่หลากหลายและให้ภาพที่สวยงามซึ่งบางครั้งอาจแยกความแตกต่างได้
- 15 หมายความว่ามันสร้างแบบจำลองที่สมบูรณ์แบบของบางภาพและแม้แต่สำหรับภาพที่ใหญ่ขึ้นและซับซ้อนขึ้น หรือบางทีมันอาจจะไม่ได้สร้างภาพที่ค่อนข้างเป็นที่จดจำ แต่ก็ให้ภาพที่สวยงามซึ่งได้มาจากต้นฉบับอย่างชัดเจน
- 3 คะแนนสำหรับการใช้ชุดอักขระ Unicode อย่างชาญฉลาด
- 0 คะแนนสำหรับการใช้อักขระที่อนุญาตทั้งชุด
- 1 จุดสำหรับการใช้ชุดอักขระที่ จำกัด ซึ่งปลอดภัยสำหรับการถ่ายโอนผ่าน Twitter หรือในสถานการณ์ที่หลากหลาย
- 2 คะแนนสำหรับการใช้ชุดอักขระที่มีเนื้อหาเฉพาะเรื่องเช่นเฉพาะอุดมคติของฮั่นหรือเฉพาะอักขระจากขวาไปซ้าย
- 3 คะแนนสำหรับการทำสิ่งที่เรียบร้อยจริงๆเช่นการสร้างข้อความที่อ่านได้หรือใช้ตัวอักษรที่ดูเหมือนภาพในคำถาม
- 3 คะแนนสำหรับวิธีคิดอัลกอริทึมที่ฉลาดและสไตล์โค้ด
- 0 คะแนนสำหรับโค้ดที่มี 1,000 บรรทัดเท่านั้นเพื่อลดขนาดรูปภาพถือเป็น 1 บิตต่อพิกเซลและเข้ารหัส base64 ที่
- 1 จุดสำหรับบางสิ่งที่ใช้เทคนิคการเข้ารหัสมาตรฐานและเขียนได้ดีและกระชับ
- 2 คะแนนสำหรับสิ่งที่แนะนำเทคนิคการเข้ารหัสที่ค่อนข้างแปลกใหม่หรือสั้นและสะอาดอย่างน่าประหลาดใจ
- 3 คะแนนสำหรับหนึ่งสายการบินที่ให้ผลลัพธ์ที่ดีจริง ๆ หรือสิ่งที่ทำลายพื้นใหม่ในการเข้ารหัสกราฟิก (ถ้านี่ดูเหมือนว่ามีจำนวนคะแนนต่ำสำหรับการทำลายพื้นใหม่โปรดจำไว้ว่าผลลัพธ์ที่ดีนี้น่าจะมีคะแนนสูงเพื่อความสวยงาม เช่นกัน)
- 2 คะแนนสำหรับความเร็ว ทุกอย่างเท่าเทียมกันเร็วกว่าดีกว่า แต่เกณฑ์ข้างต้นล้วนสำคัญกว่าความเร็ว
- 1 คะแนนสำหรับการใช้งานซอฟต์แวร์ฟรี (โอเพ่นซอร์ส) เพราะฉันชอบซอฟต์แวร์ฟรี (โปรดทราบว่า C # จะยังคงมีสิทธิ์ใช้งานได้ตราบใดที่มันทำงานบน Mono เช่นเดียวกันรหัส MATLAB จะมีสิทธิ์หากทำงานบน GNU Octave)
- 1 คะแนนสำหรับการปฏิบัติตามกฎจริงทั้งหมด กฎเหล่านี้มีขนาดใหญ่และซับซ้อนไปหน่อยดังนั้นฉันอาจจะยอมรับคำตอบที่ดีเป็นอย่างอื่นที่มีรายละเอียดเล็ก ๆ น้อย ๆ แต่ฉันจะให้ประเด็นเพิ่มเติมกับวิธีการแก้ปัญหาที่ปฏิบัติตามกฎทั้งหมดจริง ๆ
รูปภาพอ้างอิง
บางคนถามหาภาพอ้างอิง นี่คือรูปภาพอ้างอิงบางส่วนที่คุณสามารถลองได้ รุ่นที่เล็กลงจะถูกฝังที่นี่พวกเขาทั้งหมดเชื่อมโยงไปยังรูปภาพขนาดใหญ่ขึ้นหากคุณต้องการ:
รางวัล
ฉันกำลังเสนอเงินรางวัล 500 ตัวแทน (บวก 50 ที่ StackOverflow เริ่มใช้) สำหรับโซลูชันที่ฉันชอบที่สุดตามเกณฑ์ข้างต้น แน่นอนฉันสนับสนุนให้คนอื่น ๆ ลงคะแนนให้กับโซลูชั่นที่พวกเขาชื่นชอบที่นี่เช่นกัน
หมายเหตุเกี่ยวกับกำหนดส่ง
การประกวดครั้งนี้จะดำเนินไปจนกว่าเงินรางวัลจะหมดประมาณ 18.00 น. ในวันเสาร์ที่ 30 พฤษภาคมฉันไม่สามารถบอกเวลาที่แน่นอนได้ว่าจะสิ้นสุดลง มันอาจจะอยู่ที่ไหนก็ได้ตั้งแต่ 5 โมงถึง 7 โมง ฉันจะรับประกันได้ว่าฉันจะดูรายการทั้งหมดที่ส่งมาภายในเวลา 14.00 น. และฉันจะพยายามอย่างเต็มที่เพื่อดูรายการทั้งหมดที่ส่งมาภายในเวลา 16.00 น. หากมีการส่งคำตอบหลังจากนั้นฉันอาจไม่มีโอกาสได้ดูอย่างเป็นธรรมก่อนที่จะตัดสินใจ ยิ่งคุณส่งเร็วเท่าไหร่โอกาสที่คุณจะได้รับคะแนนมากขึ้นก็จะช่วยให้ฉันเลือกทางออกที่ดีที่สุดได้ดังนั้นลองส่งใหม่เร็วกว่าที่จะถึงกำหนด
หมายเหตุ Unicode
นอกจากนี้ยังมีความสับสนในสิ่งที่ตัวละคร Unicode ได้รับอนุญาต ช่วงที่เป็นไปได้ Unicode จุดรหัสไปU+0000
U+10FFFF
มีจุดรหัสบางอย่างที่ไม่สามารถใช้เป็นอักขระ Unicode ในการแลกเปลี่ยนข้อมูลแบบเปิดใด ๆ เหล่านี้เป็นnoncharactersและจุดรหัสตัวแทน Noncharacters กำหนดไว้ในUnidode มาตรฐาน 5.1.0 ส่วน 16.7เป็นค่าU+FFFE
, U+FFFF
, U+
nFFFE
, U+
nFFFF
ที่nคือ1
- 10
เลขฐานสิบหกและช่วงU+FDD0
-U+FDEF
. ค่าเหล่านี้มีจุดประสงค์เพื่อใช้สำหรับการใช้งานภายในเฉพาะแอปพลิเคชันและแอปพลิเคชันที่สอดคล้องกันอาจตัดอักขระเหล่านี้ออกจากข้อความที่ประมวลผลโดยพวกเขา รหัสจุดตัวแทนที่กำหนดในUnicode Standard 5.1.0 ส่วน 3.8เป็นU+D800
- U+DFFF
ใช้สำหรับการเข้ารหัสอักขระที่อยู่นอกเหนือจาก Basic Multilingual Plane ใน UTF-16 ดังนั้นจึงเป็นไปไม่ได้ที่จะเป็นตัวแทนของรหัสจุดเหล่านี้โดยตรงในการเข้ารหัส UTF-16 และมันไม่ถูกต้องที่จะเข้ารหัสพวกเขาในการเข้ารหัสอื่น ๆ ดังนั้นเพื่อจุดประสงค์ของการประกวดครั้งนี้ฉันจะอนุญาตให้โปรแกรมใด ๆ ที่เข้ารหัสภาพในลำดับไม่เกิน 140 จุดรหัส Unicode จากช่วงU+0000
- U+10FFFF
ไม่รวมคู่ที่ไม่ใช่ตัวอักษรและตัวแทนตามที่กำหนดไว้ข้างต้น
ฉันจะชอบโซลูชันที่ใช้เฉพาะอักขระที่กำหนดและดีกว่าที่ใช้ชุดย่อยที่ชาญฉลาดของอักขระที่กำหนดหรือทำสิ่งที่น่าสนใจกับชุดอักขระที่พวกเขาใช้ สำหรับรายชื่อของตัวละครที่ได้รับมอบหมายให้ดูที่ฐานข้อมูลตัวอักษร Unicode ; โปรดทราบว่าตัวละครบางตัวมีการระบุไว้โดยตรงในขณะที่บางคนอยู่ในรายการเป็นเพียงจุดเริ่มต้นและจุดสิ้นสุดของช่วง โปรดทราบด้วยว่าจุดรหัสตัวแทนจะแสดงอยู่ในฐานข้อมูล แต่ไม่ได้รับอนุญาตตามที่กล่าวไว้ข้างต้น หากคุณต้องการใช้ประโยชน์จากคุณสมบัติบางอย่างของตัวอักษรเพื่อทำให้ข้อความที่คุณส่งออกน่าสนใจยิ่งขึ้นมีฐานข้อมูลข้อมูลอักขระที่หลากหลายเช่นรายการบล็อกโค้ดที่มีชื่อและคุณสมบัติอักขระต่างๆ.
เนื่องจาก Twitter ไม่ได้ระบุชุดอักขระที่แน่นอนที่พวกเขาสนับสนุนฉันจะผ่อนปรนเกี่ยวกับการแก้ปัญหาที่ไม่ได้ทำงานกับ Twitter เพราะตัวละครบางตัวนับเป็นพิเศษหรือตัวละครบางตัวถูกปล้น เป็นที่ต้องการ แต่ไม่จำเป็นว่าทุกผลการเข้ารหัสควรจะสามารถที่จะโอนเป็นอันตรายผ่านทาง Twitter หรือบริการ microblogging อีกเช่นidenti.ca ฉันได้เห็นเอกสารบางอย่างที่ระบุว่าตัวเข้ารหัสเอนทิตีของ Twitter <,> และ & และทำให้นับเป็นตัวอักษร 4, 4 และ 5 ตามลำดับ แต่ฉันไม่ได้ทดสอบตัวเองและตัวนับ JavaScript ของพวกเขาดูเหมือนจะไม่ เพื่อนับพวกเขาในแบบนั้น
เคล็ดลับ & ลิงค์
- คำจำกัดความของอักขระ Unicode ที่ถูกต้องในกฎนั้นค่อนข้างซับซ้อน การเลือกตัวละครกลุ่มเดียวเช่น CJK Unified Ideographs (U + 4E00 – U + 9FCF) อาจทำได้ง่ายกว่า
- คุณสามารถใช้ไลบรารีรูปภาพที่มีอยู่เช่นImageMagickหรือPython Imaging Libraryเพื่อจัดการภาพของคุณ
- หากคุณต้องการความช่วยเหลือบางทำความเข้าใจชุดอักขระ Unicode และการเข้ารหัสต่างๆดูคู่มือที่รวดเร็วหรือคำถามที่พบบ่อยรายละเอียดเกี่ยวกับ UTF-8 ใน Linux และ Unix
- ก่อนหน้านี้คุณจะได้รับการแก้ปัญหาของคุณยิ่งฉัน (และคนอื่น ๆ ลงคะแนน) มากเท่าไรก็จะต้องดูด้วย คุณสามารถแก้ไขโซลูชันของคุณหากคุณปรับปรุง ฉันจะยึดรางวัลของฉันเป็นเวอร์ชันล่าสุดเมื่อฉันดูการแก้ปัญหาล่าสุด
- ถ้าคุณต้องการรูปแบบภาพที่ง่ายต่อการแยกและการเขียน (และไม่ได้ต้องการเพียงแค่ใช้รูปแบบที่มีอยู่) ผมขอแนะนำให้ใช้รูปแบบ PPM มันเป็นรูปแบบข้อความที่ใช้งานได้ง่ายมากและคุณสามารถใช้ImageMagickเพื่อแปลงเป็นและจากมันได้