รูปแบบรูปภาพ Ultra HDR ช่วยให้รูปภาพเก็บข้อมูลได้มากขึ้น ความเข้มของแสง ซึ่งทำให้มีไฮไลต์และเงาที่ละเอียดมากขึ้น และสีที่เข้มขึ้น Android รองรับการเริ่มแสดงภาพ Ultra HDR ใน Android 14 (API ระดับ 34) หากแอปกำลังทำงานในเวอร์ชันเหล่านั้น เป็นสิ่งสำคัญในการกำหนดค่าแอปพลิเคชันของคุณ ให้แสดงภาพเหล่านี้อย่างถูกต้อง ในอีกทาง หากแอปไม่แสดงรูปภาพ Ultra HDR คุณก็บันทึกอุปกรณ์ได้ ทรัพยากรโดยไม่เปิดใช้การแสดงผล Ultra HDR หน้านี้อธิบายวิธีตรวจสอบ กราฟิกรองรับ Ultra HDR หรือไม่ และวิธีแสดงผลอย่างถูกต้อง
![กราฟิกแสดงการจำลองความแตกต่างระหว่างช่วงไดนามิกมาตรฐานกับช่วงไดนามิกสูง กราฟิกแสดงภูมิประเทศที่มีท้องฟ้าเมฆมาก ส่วนครึ่งขวาซึ่งจำลอง HDR จะมีไฮไลต์ที่สว่างขึ้น เงาที่เข้มขึ้น และสีที่คมชัดขึ้น](https://developer.android.com/static/media/images/grow/ultrahdr-simulation.png?hl=th)
ตรวจสอบการมีอยู่ของแผนที่เกน
รูปภาพ Ultra HDR มีแผนที่เกน กราฟ กำไร คือ
ใช้กำหนดความสว่างที่เพิ่มขึ้นของแต่ละพิกเซลในรูปภาพ วิธียืนยัน
หากรูปภาพอยู่ในรูปแบบ Ultra HDR ให้แปลงรูปภาพหรือที่ถอนออกได้เป็น
Bitmap
และโทรหา Bitmap.hasGainMap()
(ใช้ได้ตั้งแต่ Android 14) เพื่อตรวจสอบว่ามีแผนที่เกนหรือไม่
กำหนดค่าหน้าต่างให้แสดง Ultra HDR
หากต้องการแสดงรูปภาพ Ultra HDR ที่มีช่วงไดนามิกแบบเต็ม ให้ตั้งค่าสีของหน้าต่าง
เป็น ActivityInfo.COLOR_MODE_HDR
ซึ่งทำได้โดยเรียก
setColorMode()
ของหน้าต่าง (API เหล่านี้
พร้อมใช้งานจาก Android 8 แต่รูปภาพจะไม่แสดงใน Ultra HDR เว้นแต่ว่า
อุปกรณ์ใช้ Android 14 ขึ้นไป)
สรุปข้อมูลทั้งหมด
โค้ดต่อไปนี้แสดงลักษณะของกระบวนการทั้งหมด โค้ดนี้จะถือว่ามีรูปภาพ
จะถูกโหลดลงในบิตแมป และตรวจสอบว่ารูปภาพมีแผนที่เกนหรือไม่ หากใช่ องค์ประกอบ
โค้ดจะเปลี่ยนโหมดสีของหน้าต่างเป็น COLOR_MODE_HDR
ถ้า
รูปภาพไม่มีแผนที่เกน โค้ดจะสลับหน้าต่างไปยังค่าเริ่มต้น
โหมดสี
Kotlin
val bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap) // Set color mode of the activity to the correct color mode. requireActivity().window.colorMode = if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT
Java
final Bitmap bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap); // Set color mode of the activity to the correct color mode. int colorMode = ActivityInfo.COLOR_MODE_DEFAULT; if (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR; requireActivity().getWindow().setColorMode(colorMode);
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับภาพ Ultra HDR ได้จากแหล่งข้อมูลเพิ่มเติมต่อไปนี้
- วิดีโอ: การสร้างสื่อ Android คุณภาพสูง ประสบการณ์
- แอปตัวอย่าง: การแสดง Ultra HDR
- ข้อกําหนดด้านรูปแบบรูปภาพ Ultra HDR