Spore อนุญาตให้แบ่งปันสิ่งมีชีวิตที่ผู้เล่นสร้างขึ้นด้วยการส่งออก.png
ไฟล์ นั่น.png
คือรูปถ่ายของสิ่งมีชีวิต แต่ถ้ามันถูกนำเข้าไปในเกมข้อมูลของสิ่งมีชีวิต (เช่นพื้นผิวขนาดและรูปร่าง) ก็มาพร้อมกับมันด้วย
ฉันจะใช้คุณสมบัติดังกล่าวได้อย่างไร
Spore อนุญาตให้แบ่งปันสิ่งมีชีวิตที่ผู้เล่นสร้างขึ้นด้วยการส่งออก.png
ไฟล์ นั่น.png
คือรูปถ่ายของสิ่งมีชีวิต แต่ถ้ามันถูกนำเข้าไปในเกมข้อมูลของสิ่งมีชีวิต (เช่นพื้นผิวขนาดและรูปร่าง) ก็มาพร้อมกับมันด้วย
ฉันจะใช้คุณสมบัติดังกล่าวได้อย่างไร
คำตอบ:
หากสิ่งที่คุณต้องการอย่างแท้จริงคือไฟล์ PNG โอกาสที่พวกเขาเพียงแค่เพิ่มข้อมูลลงในไฟล์ นี้เป็นจริงการปฏิบัติของซูรินาเม หลายครั้งสิ่งนี้ใช้เพื่อซ่อน payloads หรือข้อความลับในสิ่งที่ดูเหมือนเป็นสาธารณะ อย่างไรก็ตามมีโอกาสในกรณีนี้ว่าวิธีนี้เป็นสิ่งที่ใช้ Stegongraphy ทั่วไปจะออกนอกทางเพื่อซ่อนเนื้อหา แต่ไม่มีเหตุผลว่าทำไมเราไม่สามารถผนวกข้อมูลจากภาพในตอนท้ายของไฟล์และดึงข้อมูลได้
เครื่องมือต่างๆเข้ารหัสข้อมูลนี้ให้คุณค้นหา google นำขึ้นอย่างน้อยนี้และนี้
PNG มีลายเซ็นเป็นไบต์$89
ในตอนเริ่มต้นดังนั้นจึงเป็นไปได้ที่ข้อมูลจะถูกแทรกหลังจากโครงสร้าง PNG และแยกวิเคราะห์โดยเกม SPORE
อย่างไรก็ตามการวิจัยเพิ่มเติมที่ได้รับจากคำตอบอื่น ๆ และการค้นหาบน Google พบว่าสปอร์ใช้จริงเพียง Stegongraphy รุ่นหนึ่งเพื่อซ่อนข้อมูลในอัลฟาบิต ด้วยความคิดนี้เราจึงสามารถแยกแยะความเป็นไปได้ของข้อมูลที่ต่อท้ายหรือเมตาดาต้า
ควรสังเกตว่าข้อมูลเมตายังคงเป็นตัวเลือกที่มีศักยภาพมากหากข้อมูลถูกแยกวิเคราะห์ในพื้นที่ หากข้อมูลนั้นอาจถูกแบ่งปันในเว็บหรือเข้ารหัสใหม่การส่งออกจะไม่รับประกันว่าจะเก็บข้อมูลทั้งหมดของคุณไว้ เมื่อใช้ข้อมูลพิกเซลจะสามารถอยู่รอดได้โดยไม่เกิดปัญหา Conversion
รูปแบบ PNGมีการสนับสนุนมากขึ้นหรือน้อยเมตาดาต้าโดยพลการ มาตรฐาน PNGกำหนดไฟล์ PNG, หลักชุดของชิ้นบางส่วนที่จะต้อง (และมีข้อมูลภาพ) คนอื่น ๆ แต่เป็นตัวเลือก ตัวอย่างเช่นมีชิ้นส่วนสำหรับจัดเก็บข้อมูลแกมมาหรือฮิสโตแกรมข้อมูล
โดยเฉพาะอย่างยิ่งมีtEXt
กลุ่มข้อมูลที่สามารถใช้เพื่อเก็บคู่ข้อความ / ค่าคีย์โดยพลการ สิ่งนี้สามารถใช้เพื่อจัดส่งข้อมูลตามอำเภอใจใด ๆ ที่คุณต้องการหากคุณสามารถแสดงข้อมูลนั้นเป็นข้อความ (ซึ่งมีโอกาสมาก)
คุณจะต้องมีไลบรารี PNG ที่อนุญาตให้คุณเข้าถึงและจัดการชิ้นส่วนเพิ่มเติมเหล่านี้ (เช่นไลบรารีอ้างอิง ) หรือคุณต้องเขียนด้วยตนเอง จากนั้นเป็นเพียงเรื่องของการเลือกวิธีการเข้ารหัสข้อมูลที่คุณต้องการเป็นคู่ของคีย์ / ค่า ฉันขอแนะนำต่อไปนี้:
เพื่อประโยชน์ในการทำคำตอบที่สมบูรณ์ยิ่งขึ้นฉันจะชี้ให้เห็นว่ามีวิธีการอื่น (บันทึกไว้ก่อนหน้านี้โดยคำตอบของ @Vaughn และ @ Alexis): เข้ารหัสข้อมูลเพิ่มเติมที่คุณต้องการโดยตรงในพิกเซลภาพกระจายข้อมูลของคุณทั่ว บิตลำดับต่ำของช่องสี วิธีนี้ไม่จำเป็นต้องใช้ข้อมูลเมตาเพิ่มเติมซึ่งหมายความว่าคุณสามารถใช้งานได้ทั้งหมดโดยไม่ต้องพึ่งพาหรือกังวลเกี่ยวกับโปรแกรมภายนอกที่จัดการข้อมูลเมตานั้นไม่ถูกต้อง นอกจากนี้ยังมีปัจจัย "เจ๋ง" ที่สูงมากและเนื่องจากคุณใช้บิตที่มีลำดับต่ำเท่านั้นภาพจะยังคงถูกต้องต่อสายตามนุษย์ อย่างไรก็ตามหมายความว่าขนาดรูปภาพของคุณเป็นปัจจัยควบคุมหลักสำหรับปริมาณข้อมูลที่คุณสามารถจัดเก็บได้ หากคุณต้องการพื้นที่เก็บข้อมูลเพิ่มเติมคุณต้องจัดสรรพิกเซลให้กับรูปภาพมากขึ้น
ตามที่คนอื่น ๆ ได้ชี้ให้เห็นกระบวนการนี้เป็นที่รู้จักกันในนามของซูรินาเม
นักพัฒนาของโมนาโกทำบทความที่ยอดเยี่ยมเกี่ยวกับวิธีที่พวกเขาและสปอร์บรรลุผลสำเร็จ
สรุปพื้นฐานของสิ่งที่พวกเขาทำนั้นค่อนข้างง่าย:
เพียงทำสิ่งนี้ในสิ่งที่ตรงกันข้ามเพื่อดึงข้อมูลของคุณ
แนวคิดพื้นฐานเบื้องหลังกระบวนการคือมีพิกเซลจำนวนมากในภาพและบิตลำดับต่ำสุดของแต่ละช่องสีไม่ได้สร้างความแตกต่างใหญ่ นอกจากนี้ประมาณครึ่งหนึ่งของบิตที่คุณเขียนจะเป็นเพียงบิตของรูปภาพที่มีอยู่แล้ว สิ่งที่คุณจะได้รับกลับมาคือภาพลักษณ์ที่ถูกต้อง แต่มีสิ่งประดิษฐ์แปลก ๆ เขาใช้เวลาในการสังเกตว่าสิ่งประดิษฐ์เหล่านี้จะสังเกตเห็นได้ชัดก็ต่อเมื่อคุณเหวี่ยงความเปรียบต่าง / ความอิ่มตัวของสีและซูมเข้าจริง ๆ เขามีแหล่งที่มาของภาพที่มีเสียงรบกวนเบื้องต้นมากมาย
จากบทความ:
สังเกตุในภาพสุดท้ายว่าเสียงในแนวนอนนั้นสังเกตได้ยากเพียงใด นั่นคือจุดสิ้นสุดของข้อมูลระดับ สิ่งนี้หมายความว่าฉันสามารถใส่ข้อมูลทุกระดับให้เป็นภาพขนาด 265x120 พิกเซลโดยใช้บิตที่มีนัยสำคัญน้อยที่สุดเท่านั้น
ภาคผนวกที่แสนอร่อย:
สิ่งที่ฉันสามารถทำได้และฉันเชื่อว่า Spore folks ทำได้ดีจริง ๆ แล้วใช้บิตสีทั้งหมดในพิกเซลที่โปร่งใส 100% เนื่องจากพิกเซลเหล่านั้นโปร่งใสจึงไม่สำคัญว่าคุณจะตั้งค่าสีใด
อย่างไรก็ตามฉันไม่สามารถทำได้เนื่องจากฉันใช้รูปภาพทั้งหมดซึ่งหมายความว่าฉันไม่มีพิกเซลแบบโปร่งใสที่จะใช้งานได้
ทำไมชอบเทคนิคนี้มากกว่าแค่เก็บไว้ในเมทาดาทา
เครดิตพิเศษ: เพื่อลดความน่าสนใจของเสียงคุณสามารถใช้ PRNG พร้อมเมล็ดคงที่เพื่อเลือกพิกเซลที่จะแก้ไข คุณสามารถแก้ไขแชนเนลสีบางช่องในลักษณะที่คล้ายกันได้เท่านั้น
ฉันดาวน์โหลดและตรวจสอบสิ่งมีชีวิต Spore จาก Sporepedia จากสิ่งที่ฉันได้เรียนรู้ว่า:
เป็นที่น่าสังเกตว่านี่เป็นเพียงสิ่งที่สปอร์ทำซึ่งเป็นวิธีการที่ใช้ความเรียบง่ายก่อนข้อกังวลอื่น ๆ
ทางเลือกในการใช้การจดชวเลขมากกว่าบล็อกข้อมูลเพิ่มเติมหมายความว่าข้อมูลจะอยู่รอดได้หากรูปภาพถูกเข้ารหัสซ้ำเช่นเว็บไซต์แม้ว่ามันจะไม่รอดจากการปรับขนาดหรือการบีบอัด Jpeg
ฉันคิดว่าทางเลือกที่โดดเด่นที่สุดคือเข้ารหัสรหัสในภาพเท่านั้นและปล่อยให้ข้อมูลจริงถูกเก็บไว้บนเซิร์ฟเวอร์ส่วนกลางที่สามารถแลกเปลี่ยนรหัสนี้สำหรับข้อมูลสิ่งมีชีวิตที่แน่นอน รหัสดังกล่าวจะสั้นพอที่จะเข้ารหัสในรูปแบบของการกำหนดขนาดและการทนต่อการบีบอัดของการบีบอัด
การปรับปรุงอย่างง่ายที่เป็นไปได้ของรูปแบบสปอร์ ได้แก่ :