以ä¸é ç½®å®æ¯åï¼æå¡å¨å°±å¯ä»¥è·¨æºè·åå¾çäºãç°å¨æä»¬å¯ä»¥å¼å§ç¼åå°å¾çä¿å卿¬å°åå¨ä¸ç代ç äºï¼å°±åè¿äºå¾çå¨ä½ èªå·±ååä¹ä¸ä¸æ ·ã
å
³é®å¨äºå¨ HTMLImageElement
ä¸è®¾ç½® crossOrigin
ç crossorigin
屿§ï¼è¿å¼å¯¼æµè§å¨å¨ä¸è½½å¾åæ°æ®æ¶ä½¿ç¨è·¨æºè®¿é®ã
以ä¸ä»£ç ä¼ï¼ä¾å¦ï¼å¨ç¨æ·ç¹å»âä¸è½½âæé®æ¶ï¼å¼å§ä¸è½½ï¼
function startDownload() {
let imageURL =
"https://cdn.glitch.com/4c9ebeb9-8b9a-4adc-ad0a-238d9ae00bb5%2Fmdn_logo-only_color.svg?1535749917189";
let imageDescription = "The Mozilla logo";
downloadedImg = new Image();
downloadedImg.crossOrigin = "Anonymous";
downloadedImg.addEventListener("load", imageReceived, false);
downloadedImg.alt = imageDescription;
downloadedImg.src = imageURL;
}
å¨è¿éï¼æä»¬ä½¿ç¨äºâ硬ç¼ç âçå¾çç½åï¼imageURL
ï¼åç¸å
³æè¿°æåï¼imageDescription
ï¼ï¼å½ç¶è¿äºå¯ä»¥å¾æ¹ä¾¿å°ä»ä»»ä½å°æ¹è·åãå½å¼å§ä¸è½½å¾çæ¶ï¼æä»¬ä½¿ç¨ Image()
æé å¨å建æ°ç HTMLImageElement
对象ï¼å°å¾çç crossOrigin
屿§è®¾ç½®ä¸º "Anonymous"
ï¼å³å
许对æªç»è¿éªè¯çå¾åè¿è¡è·¨æºä¸è½½ï¼ã为å¾çæ·»å load
äºä»¶çç嬿¥å¤æå¾çæ°æ®æ¯å¦å·²æ¥æ¶ãæä»¬ä¸ºå¾çæ·»å äºæ¿ä»£æ§æåï¼å½ <canvas>
䏿¯æ alt
屿§æ¶ï¼è¯¥å¼å¯ä»¥ç¨äºè®¾ç½® aria-label
æ canvas çå
é¨å
容ã
æåï¼å°å¾çç src
屿§è®¾ç½®ä¸ºå¾çç URL 以触åå¾çä¸è½½ã
å¨ imageReceived()
æ¹æ³ä¸æ¥å¤çæ°ä¸è½½çå¾çï¼
function imageReceived() {
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
canvas.width = downloadedImg.width;
canvas.height = downloadedImg.height;
canvas.innerText = downloadedImg.alt;
context.drawImage(downloadedImg, 0, 0);
imageBox.appendChild(canvas);
try {
localStorage.setItem("saved-image-example", canvas.toDataURL("image/png"));
} catch (err) {
console.error(`Error: ${err}`);
}
}
å¨ HTMLImageElement
è°ç¨ imageReceived()
æ¥å¤ç "load"
äºä»¶ä»¥æ¥æ¶ä¸è½½å¾çã䏿¦ä¸è½½å®æå
¨é¨ææçæ°æ®å³å¯è§¦å该äºä»¶ãé¦å
æä»¬ä¼å建ç¨äºè½¬æ¢å¾çå°æ°æ® URL ç <canvas>
å
ç´ ï¼ç¶åå¨åé context
ä¸è·å canvas ç 2D ç»ç»ä¸ä¸æï¼CanvasRenderingContext2D
ï¼ã
è°æ´ç»å¸å¤§å°ä»¥å¹é
æ¥æ¶å°çå¾åï¼å
鍿åå°è®¾ç½®ä¸ºå¾ççæè¿°ï¼ç¶åä½¿ç¨ drawImage()
å°å¾åç»å¶å°ç»å¸ä¸ãç»å¸ä¹å被æå
¥å°ææ¡£ä¸æ¾ç¤ºã
ç°å¨æ¯æ¶åæ¬å°åå¨å¾çäºãæä»¬ä½¿ç¨ Web Storage API çæ¬å°å卿ºå¶æ¥å°å¾çå®é
åå¨å°æ¬å°ï¼è¯¥æºå¶å¯éè¿å
¨å± localStorage
è¿è¡è®¿é®ãcanvas ç toDataURL()
æ¹æ³ç¨äºå°å¾å转æ¢ä¸º data:// URL å½¢å¼ç PNG æ ¼å¼å¾çï¼ä¹åä½¿ç¨ setItem()
åå¨å°æ¬å°ã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4