console
var cv = document.getElementById('cv');
var c = cv.getContext('2d');
var txtDiv = document.getElementById('txt');
var fileBtn = document.getElementById("up-button");
var img = new Image();
img.onload = init;
fileBtn.onchange = getImg;
function toText(g) {
if (g <= 30) {
return '#';
} else if (g > 30 && g <= 60) {
return '&';
} else if (g > 60 && g <= 120) {
return '$';
} else if (g > 120 && g <= 150) {
return '*';
} else if (g > 150 && g <= 180) {
return 'o';
} else if (g > 180 && g <= 210) {
return '!';
} else if (g > 210 && g <= 240) {
return ';';
} else {
return ' ';
}
}
function getGray(r, g, b) {
return 0.3 * r + 0.59 * g + 0.11 * b;
}
function init() {
txtDiv.style.width = img.width + 'px';
cv.width = img.width;
cv.height = img.height;
c.drawImage(img, 0, 0);
var imgData = c.getImageData(0, 0, img.width, img.height);
var imgDataArr = imgData.data;
var imgDataWidth = imgData.width;
var imgDataHeight = imgData.height;
var html = '';
for (h = 0; h < imgDataHeight; h += 12) {
var p = '<p>';
for (w = 0; w < imgDataWidth; w += 6) {
var index = (w + imgDataWidth * h) * 4;
var r = imgDataArr[index + 0];
var g = imgDataArr[index + 1];
var b = imgDataArr[index + 2];
var gray = getGray(r, g, b);
p += toText(gray);
}
p += '</p>';
html += p;
}
txtDiv.innerHTML = html;
}
function getImg(file) {
var reader = new FileReader();
reader.readAsDataURL(fileBtn.files[0]);
reader.onload = function() {
img.src = reader.result;
}
}
<div id="toolbar">
</div>
<input type="file" id="up-button">
</input>
<canvas id="cv">
</canvas>
<div id="txt">
</div>
* {
margin: 0;
padding: 0;
}
#toolbar{
height:100px;
}
body {
font-size: 12px;
margin: 10px;
font-family: simsun;
background: #fff;
}
p {
height: 12px;
}
p.ts {
margin: 10px 0 0 0;
width: 500px;
float: left;
}
span {
width: 12px;
}
#cv,
#txt {
float: left;
}
#cv {
margin-right: 5px;
}