Baseline Widely available
CanvasRenderingContext2D
ã® getImageData()
㯠Canvas 2D API ã®ã¡ã½ããã§ããã£ã³ãã¹ã®æå®ã®é¨åã«å¯¾å¿ãããã¯ã»ã«ãã¼ã¿ã表ã ImageData
ãªãã¸ã§ã¯ããè¿ãã¾ãã
ãã®ã¡ã½ããã¯ããã£ã³ãã¹ã®å¤æè¡åã®å½±é¿ãåãã¾ãããæå®ãããç©å½¢ããã£ã³ãã¹ã®å¢çã®å¤ã«ã¯ã¿åºãå ´åã¯ãè¿ããã ImageData
ãªãã¸ã§ã¯ãã®ãã£ã³ãã¹ã®å¤å´ã®é¨åã¯éæãªé»ã«ãªãã¾ãã
ã¡ã¢: ç»åãã¼ã¿ã¯ãputImageData()
ã¡ã½ããã§ãã£ã³ãã¹ã«æç»ã§ãã¾ãã
ãã£ã³ãã¹ã¨ãã¯ã»ã«æä½ã«ãgetImageData()
ããã³ãã£ã³ãã¹ã®å
容ã®ä¸è¬çãªæä½ã«é¢ãããããªãæ
å ±ãããã¾ãã
getImageData(sx, sy, sw, sh)
getImageData(sx, sy, sw, sh, settings)
弿°
sx
ImageData
ãåãåºãç©å½¢ã®å·¦ä¸ã®è§ã® x 座æ¨ã§ãã
sy
ImageData
ãåãåºãç©å½¢ã®å·¦ä¸ã®è§ã® y 座æ¨ã§ãã
sw
ImageData
ãåãåºãç©å½¢ã®å¹
ã§ããæ£ã®å¤ãæå®ããã¨å³åãã«ãè² ã®å¤ãæå®ããã¨å·¦åãã«åãåºãã¾ãã
sh
ImageData
ãåãåºãç©å½¢ã®é«ãã§ããæ£ã®å¤ãæå®ããã¨ä¸åãã«ãè² ã®å¤ãæå®ããã¨ä¸åãã«åãåºãã¾ãã
settings
çç¥å¯
以ä¸ã®ããããã£ãæã¤ãªãã¸ã§ã¯ãã§ãã
colorSpace
: ç»åãã¼ã¿ã®è²ç©ºéãæå®ãã¾ããsRGB è²ç©ºé ã表ã "srgb"
ãããã㯠display-p3 è²ç©ºé ã表ã "display-p3"
ãè¨å®ã§ãã¾ãããã£ã³ãã¹ã®æå®ã®ç©å½¢ã®ç»åãã¼ã¿ãå
¥ã£ã ImageData
ãªãã¸ã§ã¯ããè¿ãã¾ããç©å½¢ã®å·¦ä¸ã®è§ã®åº§æ¨ã¯ (sx, sy)
ã§ãããä¸ã®è§ã®åº§æ¨ã¯ (sx + sw - 1, sy + sh - 1)
ã§ãã
IndexSizeError
DOMException
sw
ã¾ã㯠sh
ã®ãããããã¼ãã®ã¨ãæãããã¾ãã
SecurityError
DOMException
ãã£ã³ãã¹ãããã¥ã¡ã³ãèªèº«ãèªã¿è¾¼ã¾ãããªãªã¸ã³ã¨ã¯ç°ãªããªãªã¸ã³ããèªã¿è¾¼ã¾ãããã¯ã»ã«ãå«ãããå«ãå¯è½æ§ãããã¨ãæãããã¾ãã ãã®ãããªå ´åã« SecurityError
DOMException
ãæããããã®ãåé¿ããã«ã¯ãå
ç»åããã®ããã«ä½¿ãããã®ã許å¯ããããã« CORS ãè¨å®ãã¦ãã ãããç»åã¨ãã£ã³ãã¹ããªãªã¸ã³éã§å©ç¨ã§ããããã«ãããåç
§ãã¦ãã ããã
ãã®ä¾ã§ã¯ãç»åãæç»ããgetImageData()
ãç¨ãã¦ãã£ã³ãã¹ã®ä¸é¨ãåå¾ãã¾ãã
getImageData()
ãç¨ãã¦ãç»åã® (10, 20)
ãå§ç¹ã¨ããå¹
80
ãé«ã 230
ã®é¨åãåãåºãã¾ããããã¦ããã®é¨åã 3 åãååæç»ããé¨åã®å³ä¸ã«æç»ãã¦ããã¾ãã
<canvas id="canvas" width="700" height="400"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const image = new Image();
image.src = "plumeria.jpg";
image.addEventListener("load", () => {
ctx.drawImage(image, 0, 0, 233, 320);
const imageData = ctx.getImageData(10, 20, 80, 230);
ctx.putImageData(imageData, 260, 0);
ctx.putImageData(imageData, 380, 50);
ctx.putImageData(imageData, 500, 100);
});
çµæ è²ç©ºéã®å¤æ
çç¥å¯è½ãª colorSpace
ãè¨å®ãããã¨ã§ã欲ããå½¢å¼ã®ç»åãã¼ã¿ãå¾ããã¨ãã§ãã¾ãã
const context = canvas.getContext("2d", { colorSpace: "display-p3" });
context.fillStyle = "color(display-p3 0.5 0 0)";
context.fillRect(0, 0, 10, 10);
// ImageData ã sRGB ã«å¤æãã
const imageData = context.getImageData(0, 0, 1, 1, { colorSpace: "srgb" });
console.log(imageData.colorSpace); // "srgb"
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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