Skip to content

Instantly share code, notes, and snippets.

@teramako
Created March 15, 2010 08:44
Show Gist options
  • Save teramako/332632 to your computer and use it in GitHub Desktop.
Save teramako/332632 to your computer and use it in GitHub Desktop.
画像のピクセルデータを■の羅列で塗りなおす
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>TwitterIconPixels</title>
<script type="text/javascript" src="toPixel.js"></script>
</head>
<body onload="init()">
<h1>Twitter Icon Pixels</h1>
<canvas id="can" width="16" height="16"></canvas>
<pre id="debug"></pre>
</body>
</html>
var canvas, ctx, pre;
var imageSrc = ["data:image/png;base64,",
"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB",
"20lEQVQ4jY2TvU9TYRTG7yZ/AIPOTPwH4B/gaBydCAkJsDqoi1EGYAAGEggDAyFETRxNHI2DgxoT",
"wwLhu1AKLS29bS/t/Xg/7n18TntTanNNepNf3s/z9Jz3PHWc9DNxDF8btIxFYAwia+EM+iUAQgbs",
"RRbfWwZ/Qguf6zhJBhNJeLGsLT55ET6TD40IeWWhBs1CBArKYKMWYpOskRwFtNGIpByB5SmWZ1lq",
"pkCeAsvVAKtugBWOX5oKvwODX+Rniswvmam2GSLnkcG7io/52wALtz7ecv6mS9CdzxHXZAicUuBF",
"2cdrXnhVbrV5KbTXnT05my41caD63kZKOAwNJnk4K9x0xpnS/ShMFZtYqPqI+rsDbuyHGs+uPTwv",
"3uHplYevLYUGU5XuVIiMRT6kjjNaCyTYDTQeFxp4wuDxywZ+cG3YRvGIZCjY//lCDvcYMJKvY5TB",
"Dy/q2KIfENNMbFuSYtuCGSIi4LHXEuyc1+FQYJgs1QJ8pNAO2SbvSa7/Abtl8NcW6QHnpAonV+tw",
"6vbA/RMXj7hf0hltFN8rGmSCr+0c8/JZ7V6oF55983V2FmJTqXmdVpb3eHDmthlKkUzGWOZdlhN7",
"M9FawWPbjmmuQ3KUIvOm+fdP9heVXWHe5+F6gQAAAABJRU5ErkJggg==",
].join("");
function init(){
canvas = document.getElementById("can");
pre = document.getElementById("debug");
ctx = canvas.getContext("2d");
loadImage(imageSrc, onImageLoad);
}
function onImageLoad(image){
ctx.drawImage(image, 0, 0);
var pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
var data = [];
var offset = 0;
var str = "";
for (var y = 0, height = canvas.height; y < height; y++){
data[y] = [];
for (var x = 0, width = canvas.width; x < width ; x++){
var r = pixels[offset],
g = pixels[offset+1],
b = pixels[offset+2],
a = pixels[offset+3];
data[y][x] = [r, g, b, a].join(", ");
str += '<span style="color:rgba(' + [r, g, b].join(",") + ","+ (a/255) + ');">■</sapan>'
offset += 4;
}
log(str + "\n");
str = "";
}
window.getSelection().selectAllChildren(pre);
}
function loadImage(src, cbFunc){
var image = new Image();
image.onload = function(){
cbFunc(image);
}
image.src = src;
}
function log(msg){
pre.innerHTML += msg;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment