[英]Algorithm to create a bitmap/canvas image from binary 1's and 0's to visually see the data in JavaScript?
假設我在標准JavaScript字符串中有20,164個二進制數字,例如:
var data = '101010101010101010101010100110001011010101101' ...
我想要做的是通過將這些數字轉換為位圖或HTML5畫布圖像來查看這些數字的可視化表示。 因此,如果我遍歷所有位並且它遇到1則會繪制一個黑色像素,而0則該像素將為白色。
所以我猜我需要一個142 x 142像素的網格,看起來像這樣:
在JavaScript中執行此操作的算法或方法是什么? 我需要做的就是在網頁上顯示它,所以可能創建一個基本的位圖或畫布或SVG圖像就可以了。
非常感謝
你對HTML5畫布的想法完全正確。 如果您不想執行base64數據,可以嘗試以下類似的操作。
Javascript(沒有錯誤檢查):
var string = "1010101...";
var ctx = document.getElementById("canvas").getContext('2d');
ctx.fillStyle = "#FFF"; // Fill with white first
ctx.fillRect(0, 0, 142, 142);
ctx.fillStyle = "#000";
for (var i = 0; i < 142; i++) { // Loop through each character
for (var j = 0; j < 142; j++) {
if (string[i*142+j] == '1') // If the character is one,
ctx.fillRect(i, j, 1, 1 ); // fill the pixel with black
}
}
HTML:
<body>
<canvas width=142 height=142 id="canvas"></canvas>
</body>
如果你使用它,你應該確保檢查字符串的長度是你期望的長度。
你可以做點什么
var canvas = document.getElementById("c");
var ctx = canvas.getContext("2d");
var image = new Image();
image.src ="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";
image.onload = function() {
ctx.drawImage(image, 0, 0);
};
您也可以直接在HTML中包含圖像而不使用JS:
例:
<img alt='' src='data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7'/>
但圖像必須采用正確的格式:jpg,tiff,png等,而不僅僅是位圖。 您可以輕松地將位圖轉換為BMP等格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.