Gainmap 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。
[Android.Runtime.Register("android/graphics/Gainmap", ApiSince=34, DoNotGenerateAcw=true)]
public sealed class Gainmap : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/graphics/Gainmap", ApiSince=34, DoNotGenerateAcw=true)>]
type Gainmap = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 它是一組描述如何套用增益圖的元資料,以及一個代表增益圖資料本身的 1(例如 或 android.graphics.Bitmap.Config#ALPHA_8 3,例如 android.graphics.Bitmap.Config#ARGB_8888 忽略 alpha 通道)的通道位圖組合而成。
當渲染成 android.content.pm.ActivityInfo#COLOR_MODE_HDR 活動時,當 Canvas 有足夠 HDR 餘裕時,硬體加速會自動套用增益貼圖。
<h3>增益圖結構</h3>
增益圖影像的邏輯整體包含一個基底位圖,代表原始影像,該影像在不支援增益圖時會顯示,此外還有一個帶有第二張增強影像的增益圖。 以 JPEG 為例,基礎影像會是該格式通常使用的典型 8 位元 SDR 影像。 增益圖影像會嵌入在基礎影像旁邊,通常解析度較低(例如1/4),並附有一些描述如何套用增益圖的元資料。 增益圖本身則是灰階影像,代表要套用到底片以重建 HDR 版本的變換。
因此,這些「gainmap影像」由三個部分組成——一個帶有 a Bitmap 的基底Bitmap#getGainmap(),回傳該類別的一個實例,該實例又包含以另一個位圖表示的增強層,可透過 #getGainmapContents()<h3>存取。手動<套用增益圖/h3>
當進行自訂渲染,例如對 OpenGL ES 或 Vulkan 上下文時,gainmap 不會自動套用。 在這種情況下,以下步驟適合將增益貼圖與基礎影像結合渲染。
假設我們的顯示器有 HDR 與 SDR 的比例為 H,並且我們想在這個顯示器上顯示帶有增益貼圖的影像。 設 B 為底圖的像素值,該色彩空間包含底圖的主色和線性傳遞函數。 設 G 是增益圖的像素值。 設 D 為與 B 相同色彩空間中的輸出像素。D 的值計算方式如下:
首先,設 W 為一個權重參數,決定增益貼圖將被應用多少。
W = clamp((log(H) - log(minDisplayRatioForHdrTransition)) /
(log(displayRatioForFullHdr) - log(minDisplayRatioForHdrTransition), 0, 1)
接著,設 L 為對數空間中的增益映射值。 我們從從紋理中取樣的值 G 計算如下:
L = mix(log(ratioMin), log(ratioMax), pow(G, gamma))
最後,應用增益貼圖來計算顯示像素 D。 若基礎影像為 SDR,則計算:
D = (B + epsilonSdr) * exp(L * W) - epsilonHdr
在上述數學中,log() 是自然對數,exp() 是自然的指數運算。 這些函數的基底會抵銷且不影響結果,因此若偏好,可使用其他基底。
Java 文件 android.graphics.Gainmap。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| Gainmap(Bitmap) |
從給定的位圖建立增益圖。 |
| Gainmap(Gainmap, Bitmap) |
以提供的增益圖作為元資料來源,並以提供的位圖取代 gainmapcontents 建立新的增益圖 |
欄位
| 名稱 | Description |
|---|---|
| GainmapDirectionHdrToSdr |
已淘汰.
增益貼圖將以 HDR 基礎影像的方式套用,完全套用增益貼圖會得到 SDR 影像。 |
| GainmapDirectionSdrToHdr |
已淘汰.
增益貼圖會像是 SDR 影像一樣套用,完全套用增益貼圖會得到 HDR 影像。 |
屬性
| 名稱 | Description |
|---|---|
| AlternativeImagePrimaries |
取得應該套用增益圖數學的色彩空間。 -或- 設定增益圖數學應應用的色彩空間。 |
| Class |
回傳此 |
| Creator |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 |
| DisplayRatioForFullHdr |
取得 hdr/sdr 比率,當套用增益貼圖會得到 HDR 還原時 -或- 設定 hdr/sdr 比值,然後套用增益貼圖會得到 HDR 重現。 |
| GainmapContents |
設定增益圖的影像資料。 |
| GainmapDirection |
能判斷增益圖數學應該應用的方向。 -或- 設定增益圖數學應用的方向。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| JniPeerMembers |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 |
| MinDisplayRatioForHdrTransition |
得到低於 HDR/SDR 比率的 HDR/SDR 比值,應用增益貼圖後會產生 SDR 的呈現。 -或- 設定 hdr/sdr 比率低於應用增益映射後產生的 SDR 呈現。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| DescribeContents() |
沒有特別的包裹內容。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| Equals(Object) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetEpsilonHdr() |
拿到了 HDR Epsilon。 |
| GetEpsilonSdr() |
拿到SDR Epsilon。 |
| GetGamma() |
取得增益圖伽瑪。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetRatioMax() |
最大化增益圖比率。 |
| GetRatioMin() |
最大化增益圖比率。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| SetEpsilonHdr(Single, Single, Single) |
設定 HDR ε,用以避免數值不穩定。 |
| SetEpsilonSdr(Single, Single, Single) |
設定 sdr epsilon,用以避免數值不穩定。 |
| SetGamma(Single, Single, Single) |
設定增益貼圖的伽瑪。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| SetRatioMax(Single, Single, Single) |
設定增益貼圖比率的最大值。 |
| SetRatioMin(Single, Single, Single) |
設定增益映射比最小值。 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
把增益圖寫入 parcel。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
Gainmap 是一種將 SDR 影像增強成具有可變顯示調整功能的 HDR 影像的機制。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |