You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow an image to indicate its own density and correct its intrinsic size.
See https://discourse.wicg.io/t/proposal-exif-image-resolution-auto-and-from-image/4326/24
This proposal allows using EXIF or other metadata to determine an image's
default resolution, which may be different from the requested resolution
in srcset/image-set, or from the default of 1dppx.
The use-case is, for example, allowing serving low-density placeholder in poor
network conditions without affecting layout.
When an image indicates its intrinsic density-corrected size, that indication
is "stronger" than the requested density (current pixel density). This allows, for example, serving a regular 1x image when a 2x image is requested by srcset, allowing for correct presentation of content that contains that information.
The WICG proposal defines that in detail - using size+resolution from EXIF
when their values are matching.
<li><p>Otherwise, if the user agent is able to determine <var>image request</var>'s image's
27806
-
width and height, and <var>image request</var> is <span>current request</span>, update the
27807
-
<code>img</code> element's presentation appropriately and set <var>image request</var>'s
27814
+
width and height, and <var>image request</var> is <span>current request</span>,
27815
+
<span data-x="update the image metadata"> update the <code>img</code> metadata</span>, and update
27816
+
the <code>img</code> element's presentation appropriately and set <var>image request</var>'s
27808
27817
<span data-x="img-req-state">state</span> to <span data-x="img-inc">partially
27809
27818
available</span>.</p></li>
27810
27819
@@ -27894,6 +27903,27 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...</code
27894
27903
<li><p>Let the <code>img</code> element's <span>pending request</span> be null.</p></li>
27895
27904
</ol>
27896
27905
27906
+
<h6>Updating the image metadata</h6>
27907
+
<p>When asked to <dfn>update the image metadata</dfn> for a given <code>img</code>, user agents must do the following:
27908
+
27909
+
<ol>
27910
+
<li><p>Attempt to read <dfn data-x-href="https://www.exif.org/Exif2-2.PDF">EXIF</dfn> metadata embedded in the image, as defined in the
27911
+
image codec.</p></li>
27912
+
<li><p>If <code>img</code> does not have any <span>EXIF</span> metadata, return.</p></li>
27913
+
<li><p>Let <code>img</code>'s <code>preferred width</code> correspond to the value of <span>EXIF</span> tag <code>PixelXDimension</code>
27914
+
(<code>0xa002</code>). If <code>preferred width</code> is not a number between <code>1</code> and <code>65535</code>, return.</p></li>
27915
+
<li><p>Let <code>img</code>'s <code>preferred height</code> correspond to the value of <span>EXIF</span> tag <code>PixelYDimension</code>
27916
+
(<code>0xa003</code>).</p></li> If <code>preferred width</code> is not a number between <code>1</code> and <code>65535</code>, return.</p></li>
27917
+
<li><p>Let <code>img</code>'s <code>resolution unit</code> correspond to the value of <span>EXIF</span> tag <code>ResolutionUnit</code>
27918
+
(<code>0x0128</code>). If <code>resolution unit</code> is not <code>Inches</code> (<code>2</code>, return.</p></li>
27919
+
<li><p>Let <code>img</code>'s <code>horizontal resolution</code> correspond to the value of <span>EXIF</span> tag <code>XResolution</code>
27920
+
(<code>0x011a</code>).</p> If <code>horizontal resolution</code> is not a number between <code>1</code> and <code>65535</code>, return.</p></li>
27921
+
<li><p>Let <code>img</code>'s <code>vertical resolution</code> correspond to the value of <span>EXIF</span> tag <code>YResolution</code>
27922
+
(<code>0x011b</code>).</p> If <code>vertical resolution</code> is not a number between <code>1</code> and <code>65535</code>, return.</p></li>
27923
+
<li><p>If <code>img</code>'s width in <code>inches</code> divided by <code>horizontal resolution</code> is equal to <code>img</code>'s
27924
+
<code>preferred width</code>, and <code>img</code>'s height in <code>inches</code> divided by <code>vertical resolution</code> is equal to <code>img</code>'s width,
27925
+
set <code>img</code>'s <span>preferred density-corrected dimensions</span> to <code>img</code>'s <code>preferred width</code> and <code>preferred height</code></p></li>.
0 commit comments