透過javascript把圖片轉換成字元畫_javascript技巧
canvas
html5
javascript
透過javascript把圖片轉換成字符畫
1.取得上傳圖片物件數據
Javascript無法直接取得本地上傳的圖片的數據,html5可以解決這一問題 。 html5裡面的FileReader interface可以把圖片物件的資料讀到內存,然後透過介面的進度事件(Progress Events)存取這些資料。
瀏覽器支援:
1、Internet Explorer: 10
2、Firefox: 10
3、Chrome: 13
4、Opera: 12
5、Safari: partial
複製程式碼 程式碼如下:
var reader = new //建立一個FileReader介面
reader.readAsDataURL(fileBtn.files[0]); //fileBtn為檔案上傳控制物件
reader.onload = function () //在onload事件中存取影像資料
img.src = reader.result; }
2.取得影像物件像素點
影像物件的getImageData 方法傳回一個對象,每個像素點的rgba 值都保存在其data 屬性下面,這是一個一位數組, 也就是說,rgba 分別對應一個值,接著就是一下像素點的rgba,假設getImageData.data 的值為[1,2,3,4,5,6,7,8], 那麼getImageData 物件範圍就包含了2 個像素點,第一個像素點的rgba 值分別是1,2,3,4,第二個像素點的是4,5,6,7,8。 因此,我們在取每個像素點的 rgba 值的時候其index 應該在像素點的索引值上乘以 4,然後透過 getGray() 計算灰階。
複製程式碼 程式碼如下:
var imgData = c.getImageData(0, 0,mg img .width, img.height);
var imgDataArr = imgData.data;
var imgDataWidth = imgData.width;
var imgDataHeight = imgData.height. ; h = 12) {
for (w = 0; w var index = (w imgDataWidth * h) * 4; ;
var g = imgDataArr[index 1];
var b = imgDataArr[index 2]; >
3.根據rgb值計算灰階
不同的RGB空間,灰階的計算公式有所不同,常見的幾種RGB空間的計算灰階的公式如下:
1、簡化sRGB IEC61966 -2.1 [gamma=2.20]
Gray = (R^2.2 * 0.2126 G^2.2 * 0.7152 B^2.2 * 0.0722)^(1/2.2)
2, 20150505050505535535353533000000)。
Gray = (R^1.8 0. 0.0670)^(1/1.8)
5、簡化KODAK DC Series Digital Camera [gamma=2.2]
Gray = (R^2.2 * 0.2229 G^2.2 * 0.7175 B^2.2 2.2)
複製程式碼
程式碼如下:
// 依照rgb值計算灰階 🎜 >function getGray(r, g, b) { return 0.299 * r 0.578 * g 0.114 * b; }
4.根據灰度生成相應字符
把不同的灰度替換成相應的字符,原則上灰度越深的像素應該用越複雜的字符,具體什麼字符可以自由替換,這只是一個測試版本。
程式碼片段:
複製程式碼把不同的灰度替換成相應的字符,原則上灰度越深的像素應該用越複雜的字符,具體什麼字符可以自由替換,這只是一個測試版本。
程式碼片段:
程式碼如下:
// 依灰階產生對應字元
function toText(g) {
if (g > 30 && g return '&';
} else if (g > 60 && g 120 && g return '*';
} else if (g > 150 && g } else if (g > 180 && g return '!';
} else if (g > 210 && g } else {
return '.';
}
}
到這次我們的工作就完成得差不多了,具體怎麼實現大家可以自由發揮。
猛點這裡程式碼下載位址
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
如何修復KB5055518無法在Windows 10中安裝?
1 個月前
By DDD
如何修復KB5055523無法在Windows 11中安裝?
1 個月前
By DDD
<🎜>:種植花園 - 完整的突變指南
3 週前
By DDD
<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
如何修復KB5055612無法在Windows 10中安裝?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)