การวางแนวภาพ iOS มีพฤติกรรมแปลก ๆ
ในช่วงสองสามสัปดาห์ที่ผ่านมาฉันทำงานกับรูปภาพในวัตถุประสงค์ -c และสังเกตเห็นพฤติกรรมแปลก ๆ มากมาย อย่างแรกเช่นเดียวกับคนอื่น ๆ อีกมากมายฉันเคยมีปัญหานี้ที่ภาพที่ถ่ายด้วยกล้อง (หรือถ่ายด้วยกล้องของคนอื่นและ MMS จะให้ฉัน) หมุน 90 องศา ฉันไม่แน่ใจว่าทำไมในโลกนี้ถึงเกิดสิ่งนี้ขึ้น (ด้วยเหตุนี้คำถามของฉัน ) แต่ฉันสามารถหางานราคาถูกได้ คำถามของฉันเวลานี้คือทำไมนี้เกิดขึ้น ? ทำไม Apple จึงหมุนภาพ เมื่อฉันถ่ายภาพโดยหันกล้องขึ้นด้านขวาเว้นแต่ฉันจะใช้รหัสที่กล่าวถึงข้างต้นเมื่อฉันบันทึกภาพจะได้รับการบันทึกแบบหมุน ตอนนี้วิธีแก้ปัญหาของฉันก็ใช้ได้จนถึงสองสามวันที่ผ่านมา แอปพลิเคชันของฉันแก้ไขแต่ละพิกเซลของรูปภาพโดยเฉพาะช่องอัลฟาของ PNG (ดังนั้นการแปลง JPEG ใด ๆ จึงถูกโยนออกไปนอกหน้าต่างสำหรับสถานการณ์ของฉัน) ไม่กี่วันที่ผ่านมาฉันสังเกตเห็นว่าแม้ว่ารูปภาพจะแสดงอย่างถูกต้องในแอพของฉันด้วยรหัสวิธีแก้ปัญหาของฉัน แต่เมื่ออัลกอริทึมของฉันแก้ไขพิกเซลแต่ละพิกเซลของรูปภาพ แต่ก็คิดว่ารูปภาพนั้นหมุน ดังนั้นแทนที่จะแก้ไขพิกเซลที่ด้านบนของภาพมันจะแก้ไขพิกเซลที่ด้านข้างของภาพ (เพราะคิดว่ามันควรจะหมุนได้)! ฉันคิดไม่ออกว่าจะหมุนภาพในหน่วยความจำอย่างไร - โดยหลักการแล้วฉันต้องการเพียงแค่ลบimageOrientationธงนั้นทั้งหมดออกด้วยกัน นี่คือสิ่งอื่นที่ทำให้ฉันงงเช่นกัน ... เมื่อฉันถ่ายภาพimageOrientationค่าจะตั้งเป็น 3 รหัสวิธีแก้ปัญหาของฉันฉลาดพอที่จะรู้เรื่องนี้และพลิกมันเพื่อให้ผู้ใช้ไม่สังเกตเห็น นอกจากนี้รหัสของฉันในการบันทึกภาพลงในไลบรารีจะรับรู้สิ่งนี้พลิกมันแล้วบันทึกเพื่อให้ปรากฏในม้วนฟิล์มอย่างถูกต้อง รหัสนั้นมีลักษณะดังนี้: NSData* pngdata = …