亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

通過javascript把圖片轉化為字符畫

2019-11-20 21:51:06
字體:
來源:轉載
供稿:網友

通過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();                        //建立一個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, img.width, img.height); 
var imgDataArr = imgData.data; 
var imgDataWidth = imgData.width; 
var imgDataHeight = imgData.height; 
for (h = 0; h < imgDataHeight; h += 12) { 
    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]; 
    } 

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、 Adobe RGB (1998) [gamma=2.20]
Gray = (R^2.2 * 0.2973  + G^2.2  * 0.6274  + B^2.2  * 0.0753)^(1/2.2)
3、Apple RGB [gamma=1.80]
Gray = (R^1.8 * 0.2446  + G^1.8  * 0.6720  + B^1.8  * 0.0833)^(1/1.8)
4、ColorMatch RGB [gamma=1.8]
Gray = (R^1.8 * 0.2750  + G^1.8  * 0.6581  + B^1.8  * 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  * 0.0595)^(1/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) { 
        return '8′; 
    } 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 ‘.'; 
    } 


到這次我們的工作就完成得差不多啦,上面只給出了一些代碼的片段,把原理疏通了一下,具體怎么實現大家可以自由發揮。猛點這里代碼下載地址

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交丰臀xxxxx网站| 欧美精品xxx| 97在线视频国产| 久久精品成人一区二区三区| 久久噜噜噜精品国产亚洲综合| 久久91精品国产91久久跳| 欧美日韩999| 亚洲伊人第一页| 成人免费高清完整版在线观看| 国产精品自拍网| 色综合久久久888| 色综合色综合久久综合频道88| 日韩电影在线观看免费| 九九久久综合网站| 欧美日产国产成人免费图片| 日本久久中文字幕| 97在线视频免费观看| 亚洲国产精品久久精品怡红院| 亚洲丁香婷深爱综合| 国产成人亚洲综合| 国产成人精品综合| 亚洲欧美综合v| 国内精久久久久久久久久人| 91国产高清在线| 日韩一区二区欧美| 色爱av美腿丝袜综合粉嫩av| 在线播放日韩精品| 亚洲综合在线做性| 欧美日韩国产精品一区| 不卡av电影在线观看| 欧美男插女视频| 18性欧美xxxⅹ性满足| 亚洲第一区中文99精品| 日韩一区二区在线视频| 国产精品国产三级国产aⅴ浪潮| 久久久亚洲国产| 欧美又大粗又爽又黄大片视频| 欧美电影在线免费观看网站| 亚洲图片欧美日产| 97在线看福利| 亚洲日韩欧美视频| 国产精品海角社区在线观看| 亚洲福利在线视频| 欧美高清videos高潮hd| 日韩视频免费大全中文字幕| 国产丝袜视频一区| 亚洲成avwww人| 欧美伊久线香蕉线新在线| 成人精品视频在线| 亚洲精品成人久久电影| 欧美性一区二区三区| 国产精品久久久久久久午夜| 日韩大陆毛片av| 欧美乱妇40p| 欧美激情成人在线视频| 国外成人免费在线播放| 欧美日韩一区二区三区在线免费观看| 日韩av网站大全| 国产亚洲激情视频在线| 欧美日韩福利视频| 日韩电影大片中文字幕| 国产免费成人av| 色噜噜狠狠狠综合曰曰曰88av| 久久精彩免费视频| 国产精品吊钟奶在线| 亚洲国产欧美一区二区三区久久| 精品无码久久久久久国产| 韩国国内大量揄拍精品视频| 欧美性xxxx在线播放| 国产一区二区视频在线观看| 亚洲男人天堂2024| 欧美做受高潮1| 日韩精品中文字幕在线观看| 88国产精品欧美一区二区三区| 国产一区二区黑人欧美xxxx| 日韩免费在线播放| 成人免费视频网址| 国产va免费精品高清在线观看| 国产精品久久久久久久久免费看| 亚洲v日韩v综合v精品v| 成人精品视频99在线观看免费| 奇门遁甲1982国语版免费观看高清| 国产精品美女999| 国产欧美va欧美va香蕉在线| 国产精品入口尤物| 国产一区二区免费| 日韩亚洲国产中文字幕| 国产精品天天狠天天看| 欧美日韩国产限制| 国产欧美一区二区三区四区| 日韩成人激情影院| www国产亚洲精品久久网站| 黄色精品一区二区| 欧美综合国产精品久久丁香| 伊人伊成久久人综合网站| 国产在线精品播放| 精品视频一区在线视频| 大荫蒂欧美视频另类xxxx| 日韩欧美在线中文字幕| 欧美精品aaa| 欧美精品福利视频| 国产精品自拍偷拍视频| 亚洲第一中文字幕在线观看| 91免费国产视频| 欧美亚洲成人免费| 国产精品视频导航| 日韩电影在线观看中文字幕| 久久夜色撩人精品| 欧美日韩成人在线视频| 亚洲欧美激情在线视频| 亚洲美女视频网| 亚洲自拍偷拍色图| 国产精品一区二区三区久久久| 欧美第一淫aaasss性| 日产精品99久久久久久| 亚洲欧美日韩一区在线| 亚洲欧美综合区自拍另类| 日韩精品小视频| 亚洲男人第一网站| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品狠狠操| 日韩欧美一区二区在线| 中文字幕免费国产精品| 久久久欧美精品| 亚洲一区制服诱惑| 国模精品一区二区三区色天香| 一区二区三区美女xx视频| 国产日韩综合一区二区性色av| 综合国产在线视频| 亚洲激情电影中文字幕| 午夜精品久久久久久99热软件| 亚洲成色www8888| 91精品国产自产在线| 黄色91在线观看| 国产精品一区专区欧美日韩| 亚洲国产古装精品网站| 日韩av免费网站| 最近的2019中文字幕免费一页| 午夜精品一区二区三区av| 成人免费视频a| 欧美午夜www高清视频| 18性欧美xxxⅹ性满足| 国产男人精品视频| 激情懂色av一区av二区av| 欧美午夜www高清视频| 国内伊人久久久久久网站视频| 国产精品久久电影观看| 成人黄色在线观看| 久久久之久亚州精品露出| 欧美黄色片免费观看| 久久99久久久久久久噜噜| 在线中文字幕日韩| 亚洲国产精品va在线| 91成人免费观看网站| 狠狠躁夜夜躁久久躁别揉| 欧美在线视频观看| 亚洲欧美中文日韩v在线观看| 国产精品丝袜一区二区三区| 麻豆乱码国产一区二区三区| 国产成人精品日本亚洲| 欧美性开放视频| 欧美在线国产精品| 国产日韩在线视频| 欧美大片免费观看在线观看网站推荐|