내 캔버스에 아무것도 그려지지 않는 이유는 무엇입니까? (결정된)
11654 단어 webdevjavascripthelp
JS에서 사용자 정의 이미지를 그리려고 할 때마다 아무 것도 그리지 않고 루프에 X 또는 Y를 기록하려고하면 정상 값을 반환하고 색상을 기록하면 완벽하게 정상입니다.
그럼 왜 아무것도 그리지 않을까요?
const text = `Example`;
const makeColor = function makeColor(input, maxX=Infinity, maxY=Infinity) {
let X = 0;
let Y = 0;
let peakX = -1;
let peakY = -1;
if(maxX < Infinity) maxX;
const encode = function encode(input) {
let estr = "";
for(const chara of input) {
estr += String(Number(chara.charCodeAt(0), 16));
}
return estr;
};
const colors = [];
let color = "";
let itr = 0;
for(const chara of encode(input)) {
color += chara;
if(color.length >= 6) {
itr += 1;
colors.push(color);
document.writeln(itr+": "+color+"<br/>");
color = "";
}
}
if(color.length < 6 && color.length > 0) {
color += "0".repeat(6-color.length);
colors.push(color);
document.writeln(color+"<br/>");
color = "";
}
Object.freeze(colors);
try {
const canvas = document.getElementById("result");
const ctx = canvas.getContext("2d");
try {
for(const color of colors) {
console.log(X, Y);
ctx.fillStyle = "#"+color;
if(X > maxX) {
if(peakX <= -1 || X > peakX) peakX = X-1;
X = 0; Y++; ctx.fillRect(X, Y, 1, 1); X++; continue;
}
if(Y > maxY) break;
ctx.fillRect(X, Y, 1, 1); X++;
}
if(maxX >= Infinity) peakY = 1;
canvas.style.width = canvas.width = peakX;
canvas.style.height = canvas.height = peakY;
} catch(err) {throw new Error();}
} catch(err) {console.error("Could not draw image!");}
};
makeColor(text, 30);
Reference
이 문제에 관하여(내 캔버스에 아무것도 그려지지 않는 이유는 무엇입니까? (결정된)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/baenencalin/why-won-t-anything-draw-to-my-canvas-fixed-3je7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)