aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/user/api/SkImageInfo_Reference.md
diff options
context:
space:
mode:
Diffstat (limited to 'site/user/api/SkImageInfo_Reference.md')
-rw-r--r--site/user/api/SkImageInfo_Reference.md98
1 files changed, 71 insertions, 27 deletions
diff --git a/site/user/api/SkImageInfo_Reference.md b/site/user/api/SkImageInfo_Reference.md
index 611ae68d5d..743907ff54 100644
--- a/site/user/api/SkImageInfo_Reference.md
+++ b/site/user/api/SkImageInfo_Reference.md
@@ -112,40 +112,43 @@ SkImageInfo related constants are defined by <code>enum</code>, <code>enum class
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with half floats for red, green, blue, alpha; in 64-bit word</td>
</tr>
<tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel using C float for red, green, blue, alpha; in 128-bit word</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with 10 bits each for red, green, blue; in 32-bit word</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRGB_565_SkColorType'>kRGB_565_SkColorType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with 5 bits red, 6 bits green, 5 bits blue, in 16-bit word</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRGB_888x_SkColorType'>kRGB_888x_SkColorType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel with 8 bits each for red, green, blue; in 32-bit word</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRec601_SkYUVColorSpace'>kRec601_SkYUVColorSpace</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>describes SDTV range</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kRec709_SkYUVColorSpace'>kRec709_SkYUVColorSpace</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>describes HDTV range</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kUnknown_SkAlphaType'>kUnknown_SkAlphaType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>uninitialized</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kUnknown_SkColorType'>kUnknown_SkColorType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>uninitialized</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>pixel components are independent of <a href='SkColor_Reference#Alpha'>Alpha</a></td>
</tr>
</table>
-
## <a name='Alpha_Type'>Alpha Type</a>
## <a name='SkAlphaType'>Enum SkAlphaType</a>
@@ -333,8 +336,8 @@ true if <a href='#SkAlphaTypeIsOpaque_at'>at</a> equals <a href='#kOpaque_SkAlph
<a href='#kRGB_101010x_SkColorType'>kRGB_101010x_SkColorType</a>,
<a href='#kGray_8_SkColorType'>kGray_8_SkColorType</a>,
<a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>,
-
- <a href='#kLastEnum_SkColorType'>kLastEnum_SkColorType</a> = <a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a>,
+ <a href='#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a>,
+ <a href='#kLastEnum_SkColorType'>kLastEnum_SkColorType</a> = <a href='#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a>,
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
<a href='#kN32_SkColorType'>kN32_SkColorType</a> = <a href='#kBGRA_8888_SkColorType'>kBGRA_8888_SkColorType</a>,
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
@@ -456,18 +459,29 @@ blue, and green, representing colors from black to white.
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_F16'>Color&nbsp;Type&nbsp;RGBA&nbsp;F16</a>&nbsp;</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Stores 64-bit word pixel encoding that contains 16 bits of blue,
-16 bits of green, 16 bits of red, and 16 bits of alpha.
+16 bits of green, 16 bits of red, and 16 bits of alpha. Each component
+is encoded as a half float.
</td>
</tr>
<tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='kRGBA_F32_SkColorType'><code>kRGBA_F32_SkColorType</code></a></td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>11</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_F32'>Color&nbsp;Type&nbsp;RGBA&nbsp;F32</a>&nbsp;</td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
+Stores 128-bit word pixel encoding that contains 32 bits of blue,
+32 bits of green, 32 bits of red, and 32 bits of alpha. Each component
+is encoded as a single precision float.
+</td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='kLastEnum_SkColorType'><code>kLastEnum_SkColorType</code></a></td>
- <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>10</td>
+ <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>11</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
Used by tests to iterate through all valid values.
</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='kN32_SkColorType'><code>kN32_SkColorType</code></a></td>
<td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>4 or 6</td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
@@ -701,7 +715,7 @@ opaque as if its <a href='SkColor_Reference#Alpha'>Color Alpha</a> was set to on
## <a name='Color_Type_RGBA_F16'>Color Type RGBA F16</a>
<a href='#kRGBA_F16_SkColorType'>kRGBA_F16_SkColorType</a> encodes ARGB into a 64-bit word. Each component:
-blue, green, red, and alpha; use 16 bits, describing a floating point value.
+blue, green, red, and alpha; use 16 bits, describing a floating point value,
from -65500 to 65000 with 3.31 decimal digits of precision.
At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision or range to
@@ -723,11 +737,42 @@ pixels.
If paired with <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all alpha component values are at the maximum;
blue, green, and red components are fully opaque. If any alpha component is
-less than 255, the drawn result is undefined.
+less than one, the drawn result is undefined.
### Example
-<div><fiddle-embed name="788ac33198103a14a5076dc3e03f2f4b"></fiddle-embed></div>
+<div><fiddle-embed name="dd81527bbdf5eaae7dd21ac04ab84f9e"></fiddle-embed></div>
+
+### See Also
+
+<a href='SkColor4f_Reference#SkColor4f'>SkColor4f</a>
+
+## <a name='Color_Type_RGBA_F32'>Color Type RGBA F32</a>
+
+<a href='#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> encodes ARGB into a 128-bit word. Each component:
+blue, green, red, and alpha; use 32 bits, describing a floating point value,
+from -3.402823e+38 to 3.402823e+38 with 7.225 decimal digits of precision.
+
+At present, <a href='SkColor_Reference#Color'>Color</a> in <a href='SkPaint_Reference#Paint'>Paint</a> does not provide enough precision or range to
+draw all colors possible to a <a href='#kRGBA_F32_SkColorType'>kRGBA_F32_SkColorType</a> <a href='SkSurface_Reference#Surface'>Surface</a>.
+
+Each component encodes a floating point value using <a href='https://en.wikipedia.org/wiki/Single-precision_floating-point_format'>single-precision floats</a></a> .
+Meaningful colors are represented by the range 0.0 to 1.0, although smaller
+and larger values may be useful when used in combination with <a href='undocumented#Transfer_Mode'>Transfer Mode</a>.
+
+![Color_Type_RGBA_F32](https://fiddle.skia.org/i/b26119f9312d5f5d4011bf2dac94fafe_raster.png "")
+
+If paired with <a href='#kPremul_SkAlphaType'>kPremul_SkAlphaType</a>: blue, green, and red components are
+<a href='undocumented#Premultiply'>Premultiplied</a> by the alpha value. If blue, green, or red is greater than alpha,
+the drawn result is undefined.
+
+If paired with <a href='#kUnpremul_SkAlphaType'>kUnpremul_SkAlphaType</a>: blue, green, red, and alpha components
+may have any value. There may be a performance penalty with <a href='undocumented#Unpremultiply'>Unpremultiplied</a>
+pixels.
+
+If paired with <a href='#kOpaque_SkAlphaType'>kOpaque_SkAlphaType</a>: all alpha component values are at the maximum;
+blue, green, and red components are fully opaque. If any alpha component is
+less than one, the drawn result is undefined.
### See Also
@@ -942,6 +987,7 @@ SkImageInfo related constants are defined by <code>enum</code>, <code>enum class
<tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Topic</th>
<th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
</table>
+
Describes pixel dimensions and encoding. <a href='SkBitmap_Reference#Bitmap'>Bitmap</a>, <a href='SkImage_Reference#Image'>Image</a>, PixMap, and <a href='SkSurface_Reference#Surface'>Surface</a>
can be created from <a href='#Image_Info'>Image Info</a>. <a href='#Image_Info'>Image Info</a> can be retrieved from <a href='SkBitmap_Reference#Bitmap'>Bitmap</a> and
<a href='SkPixmap_Reference#Pixmap'>Pixmap</a>, but not from <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a>. For example, <a href='SkImage_Reference#Image'>Image</a> and <a href='SkSurface_Reference#Surface'>Surface</a>
@@ -1104,7 +1150,6 @@ SkImageInfo member functions read and modify the structure properties.
</tr>
</table>
-
## <a name='Related_Function'>Related Function</a>
@@ -1161,32 +1206,35 @@ SkImageInfo global, <code>struct</code>, and <code>class</code> related member f
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB as half floats</td>
</tr>
<tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGBA_F32'>Color Type RGBA F32</a></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes ARGB as single precision floats</td>
+ </tr>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_101010'>Color Type RGB 101010</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB ten bits per color component</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_565'>Color Type RGB 565</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB in 16 bits</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Color_Type_RGB_888'>Color Type RGB 888</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>encodes RGB in 32 bits</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Property'>Property</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>metrics and attributes</td>
</tr>
- <tr style='background-color: #f0f0f0; '>
+ <tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#Utility'>Utility</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>rarely called management functions</td>
</tr>
- <tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#YUV_ColorSpace'>YUV ColorSpace</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>color range of YUV pixels</td>
</tr>
</table>
-
## <a name='Constructor'>Constructor</a>
@@ -1260,7 +1308,6 @@ SkImageInfo can be constructed or initialized by these functions, including C++
</tr>
</table>
-
<a name='SkImageInfo_empty_constructor'></a>
## SkImageInfo
@@ -1695,7 +1742,6 @@ created <a href='#Image_Info'>Image Info</a>
</tr>
</table>
-
<a name='SkImageInfo_width'></a>
## width
@@ -2382,7 +2428,6 @@ SkImageInfo operators inline class member functions with arithmetic equivalents.
</tr>
</table>
-
<a name='SkImageInfo_equal1_operator'></a>
## operator==
@@ -2673,7 +2718,6 @@ SkImageInfo() == reset copy
</tr>
</table>
-
<a name='SkImageInfo_validate'></a>
## validate