HTMLImageElement: decode() ã¡ã½ãã
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2020å¹´1æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
decode() 㯠HTMLImageElement ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãç»åããã³ã¼ãããã DOM ã«è¿½å ãã¦ãå®å
¨ã«ãªã£ãã¨ãã«è§£æ±ºããããããã¹ (Promise) ãè¿ãã¾ãã
ããã¯ãç»åã DOM å ã®è¦ç´ ã«è£ çããï¼ã¾ãã¯æ°ããè¦ç´ ã¨ã㦠DOM ã«è¿½å ããï¼åã«ç»åã®èªã¿è¾¼ã¿ãéå§ãã DOM ã«è¿½å ãããæç¹ã§ããã«ç»åãã¬ã³ããªã³ã°ã§ããããã«ããããã«ä½¿ç¨ãã¾ããããã«ãããDOM ã«ç»åã追å ããå¾ã®æ¬¡ã®ãã¬ã¼ã ã®ã¬ã³ããªã³ã°ã§ãç»åã®èªã¿è¾¼ã¿ä¸ã«é å»¶ãçºçããã®ãé²ããã¨ãã§ãã¾ãã
æ§æ
decode()
弿°
ãªãã
è¿å¤
Promise ã§ãç»åãã¼ã¿ãå©ç¨ã§ããããã«ãªã£ãã¨ãã« undefined ã§å±¥è¡ããã¾ãã
ä¾å¤
EncodingError-
ç»åã®ãã³ã¼ãä¸ã«ã¨ã©ã¼ãçºçãããã¨ã示ã
DOMExceptionã§ãã
使ç¨ä¸ã®æ³¨æ
decode() ã®æ½å¨çãªä½¿ç¨ä¾ã®ä¸ã¤ã§ããé常ã«å¤§ããªç»åãèªã¿è¾¼ãå ´åï¼ä¾ãã°ãªã³ã©ã¤ã³ã®ãã©ãã¢ã«ãã ã§ï¼ãæåã¯ä½è§£å度ã®ãµã ãã¤ã«ç»åã表示ãããã®å¾ãæ°ãã HTMLImageElement ãã¤ã³ã¹ã¿ã³ã¹åãã¦ãã®ã½ã¼ã¹ã«ãã«è§£å度ç»åã® URL ãè¨å®ããdecode() ã使ã£ã¦ãããã¹ãåå¾ãããã«è§£å度ç»åã使ããããã«ãªã£ãã¨ãã«è§£æ±ºãããã¨ã«ãã£ã¦ãç»åããã«è§£å度ç»åã¨äº¤æãããã¨ãå¯è½ã§ãããã®éãä½è§£å度ã®ç»åããç¾å¨å©ç¨å¯è½ãªãã«è§£å度ã®ç»åã«ç½®ãæãããã¨ãã§ãã¾ãã
ä¾
>åºæ¬çãªä½¿ãæ¹
次ã®ä¾ã§ã¯ã decode() ã¡ã½ããã使ã£ã¦ãç»åã DOM ã«è¿½å ãããã¿ã¤ãã³ã°ãå¶å¾¡ãã¦ãã¾ãã
const img = new Image();
img.src = "nebula.jpg";
img
.decode()
.then(() => {
document.body.appendChild(img);
})
.catch((encodingError) => {
// ã¨ã©ã¼æã«ä½ããããã
});
空ã®ç»åã®é²æ¢
ä¸è¨ã®ä¾ã§ã¯ãç»åããã¦ã³ãã¼ããããã¨ããã¼ã¸ã«ç©ºã®ç»åã表示ããããã¨ã«ãªãã¾ãã
const img = new Image();
img.src = "img/logo.png";
document.body.appendChild(img);
decode() ã使ç¨ããã¨ãç»åãå®å
¨ã«ãã¦ã³ãã¼ããããã³ã¼ããããã¾ã§ DOM ã¸ã®æ¿å
¥ãé
ããããã¨ãã§ãã空ã®ç»åã®åé¡ãé¿ãããã¨ãã§ãã¾ãã
async function getImage() {
const img = new Image();
img.src = "img/logo.png";
await img.decode();
document.body.appendChild(img);
const p = document.createElement("p");
p.textContent = "Image is fully loaded!";
document.body.appendChild(p);
}
ããã¯ãæ¢åã®ç»åã¨æ°ããç»åãåçã«å ¥ãæ¿ããå ´åã«å ·ä½çãªæçãªæ¹æ³ã§ããã¾ããç»åã®ãã³ã¼ãä¸ã«ããã®ã³ã¼ã以å¤ã®ç¡é¢ä¿ãªæç»ã䏿ãããã®ãé²ããã¨ãã§ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # dom-img-decode-dev > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- What does the image decoding attribute actually do? (tunetheweb.com, 2023)
HTMLImageElement.decodingããããã£