使用Node中的Buffer模块,将图片转换成base64编码
Buffer官方文档如下 http://nodejs.cn/api/buffer.htmlnode开发过程中,常用的就是将图片转换成base64编码,这时候就用到buffer了:
运行
将打印出来的结果输入到test.js这个文件里,便于查看。之后我们在test.js里就能看到这个图片的base64编码了。
再设置好其 DataURI前缀 就能在浏览器里查看这张图片啦!
下面是我在浏览器查看的结果:
绛旓細Buffer瀹樻柟鏂囨。濡備笅 http://nodejs.cn/api/buffer.html node寮鍙戣繃绋嬩腑锛屽父鐢ㄧ殑灏辨槸灏嗗浘鐗囪浆鎹㈡垚base64缂栫爜锛岃繖鏃跺欏氨鐢ㄥ埌buffer浜嗭細杩愯 灏嗘墦鍗板嚭鏉ョ殑缁撴灉杈撳叆鍒皌est.js杩欎釜鏂囦欢閲岋紝渚夸簬鏌ョ湅銆備箣鍚庢垜浠湪test.js閲灏辫兘鐪嬪埌杩欎釜鍥剧墖鐨刡ase64缂栫爜浜嗐傚啀璁剧疆濂藉叾 DataURI鍓嶇紑 灏辫兘鍦ㄦ祻瑙堝櫒閲屾煡鐪嬭繖寮...
绛旓細鐢变簬Buffer瀵硅薄鍗犵敤鐨勫唴瀛樼┖闂存槸涓嶈绠楀湪Node.js杩涚▼鍐呭瓨绌洪棿闄愬埗涓婄殑锛屽洜姝わ紝鎴戜滑涔熷父甯镐細浣跨敤Buffer鏉ュ瓨鍌ㄩ渶瑕佸崰鐢ㄥぇ閲忓唴瀛樼殑鏁版嵁锛// 鍒嗛厤涓涓2G-1瀛楄妭鐨勬暟鎹 // 鍗曟鍒嗛厤鍐呭瓨瓒呰繃姝ゅ间細鎶涘嚭寮傚父 RangeError: Invalid typed array length var buf = new Buffer(1024 * 1024 * 1024 - 1);浠ヤ笂渚挎槸...
绛旓細Buffer鏄竴涓吀鍨嬬殑Javascript鍜孋++缁撳悎鐨勬ā鍧楋紝鎬ц兘鐩稿叧閮ㄥ垎鐢–++瀹炵幇锛岄潪鎬ц兘鐩稿叧閮ㄥ垎鐢╦avascript瀹炵幇銆侼ode鍦ㄨ繘绋嬪惎鍔ㄦ椂Buffer灏卞凡缁忓姞瑁呰繘鍏ュ唴瀛橈紝骞跺皢鍏舵斁鍏ュ叏灞瀵硅薄锛屽洜姝ゆ棤闇require Buffer瀵硅薄锛氱被浼间簬鏁扮粍锛屽叾鍏冪礌鏄16杩涘埗鐨勪袱浣嶆暟銆侭uffer鍐呭瓨鍒嗛厤 Buffer瀵硅薄鐨勫唴瀛樺垎閰嶄笉鏄湪V8鐨勫爢鍐呭瓨涓紝鍦∟ode鐨凜+...
绛旓細鐢变簬Buffer瀵硅薄鍗犵敤鐨勫唴瀛樼┖闂存槸涓嶈绠楀湪Node.js杩涚▼鍐呭瓨绌洪棿闄愬埗涓婄殑锛屽洜姝わ紝鎴戜滑涔熷父甯镐細浣跨敤Buffer鏉ュ瓨鍌ㄩ渶瑕佸崰鐢ㄥぇ閲忓唴瀛樼殑鏁版嵁锛// 鍒嗛厤涓涓2G-1瀛楄妭鐨勬暟鎹 // 鍗曟鍒嗛厤鍐呭瓨瓒呰繃姝ゅ间細鎶涘嚭寮傚父 RangeError: Invalid typed array length var buf = new Buffer(1024 * 1024 * 1024 - 1);
绛旓細璋撶紦鍐插尯Buffer锛屽氨鏄 "涓存椂瀛樿串鍖" 鐨勬剰鎬濓紝鏄殏鏃跺瓨鏀捐緭鍏ヨ緭鍑烘暟鎹殑涓娈靛唴瀛樸 JS璇█鑷韩鍙湁瀛楃涓叉暟鎹被鍨嬶紝娌℃湁浜岃繘鍒舵暟鎹被鍨嬶紝鍥犳NodeJS鎻愪緵浜嗕竴涓笌String瀵圭瓑鐨勫叏灞鏋勯犲嚱鏁癇uffer鏉ユ彁渚涘浜岃繘鍒舵暟鎹殑鎿嶄綔銆
绛旓細娉ㄦ剰锛Node.js v0.8 鍙槸绠鍗曠殑寮曠敤浜哸rray.buffer閲岀殑 buffer ,鑰屼笉鏄厠闅(cloning)銆備粙缁嶄竴涓珮鏁堢殑鏂规硶锛孉rrayBuffer#slice() 鎷疯礉浜嗕竴浠藉垏鐗囷紝鑰 Buffer#slice() 鏂板缓浜嗕竴浠姐傜被: Buffer Buffer 绫绘槸鍏ㄥ眬鍙橀噺绫诲瀷锛岀敤鏉ョ洿鎺ュ鐞2杩涘埗鏁版嵁銆 瀹冭兘澶浣跨敤澶氱鏂瑰紡鏋勫缓 Buffer.from(array) 杩斿洖涓涓...
绛旓細鍙互浣跨敤ref鍜宺ef-struct妯″潡 姣斿鎯宠瀹氫箟涓嬮潰杩欐牱鐨勭粨鏋 struct timeval { time_t tv_sec; /* seconds since Jan. 1, 1970 */ suseconds_t tv_usec; /* and microseconds */ };濡傛灉鍦nodejs閲岄潰鐢╮ef鍜宺ef-struct妯″潡鏉ュ畾涔夛紝灏辨寜涓嬮潰杩欑鍐欐硶 var ref = require('ref');var ...
绛旓細Protocol Buffers 鏄竴绉嶈交渚块珮鏁堢殑缁撴瀯鍖栨暟鎹瓨鍌ㄦ牸寮忥紝鍙互鐢ㄤ簬缁撴瀯鍖栨暟鎹簭鍒楀寲锛屽緢閫傚悎鍋氭暟鎹瓨鍌ㄦ垨 RPC 鏁版嵁浜ゆ崲鏍煎紡銆傚畠鍙敤浜庨氳鍗忚銆佹暟鎹瓨鍌ㄧ瓑棰嗗煙鐨勮瑷鏃犲叧銆佸钩鍙版棤鍏炽佸彲鎵╁睍鐨勫簭鍒楀寲缁撴瀯鏁版嵁鏍煎紡銆傜洰鍓嶆彁渚涗簡 C++銆丣ava銆丳ython 涓夌璇█鐨 API銆傞亾鐞嗘垜浠兘鎳傦紝鐒跺悗骞舵病鏈変粈涔堝嵉鐢锛岀湅瀹...
绛旓細buffer 涓烘暟鎹紦鍐插璞★紝鏄竴涓被浼兼暟缁勭粨鏋勭殑瀵硅薄锛屽彲浠ラ氳繃鎸囧畾寮濮嬪啓鍏ョ殑浣嶇疆鍙婂啓鍏ョ殑鏁版嵁闀垮害锛屽線鍏朵腑鍐欏叆浜岃繘鍒舵暟鎹 stream 鏄buffer瀵硅薄鐨勯珮绾у皝瑁咃紝鍏舵搷浣滅殑搴曞眰杩樻槸buffer瀵硅薄锛宻tream鍙互璁剧疆涓哄彲璇汇佸彲鍐欙紝鎴栬呭嵆鍙涔熷彲鍐欙紝鍦nodejs涓缁ф壙浜咵ventEmitter鎺ュ彛锛屽彲浠ョ洃鍚鍏ャ佸啓鍏ョ殑杩囩▼銆傚叿浣撳疄鐜版湁...
绛旓細Buffer鏄NodeJS鐨閲嶈鏁版嵁绫诲瀷锛屽緢鏈夊箍娉涚殑搴旂敤銆備唬琛ㄥ師濮嬪爢鐨勫垎閰嶉鐨勬暟鎹被鍨嬨傚湪NodeJS涓互绫绘暟缁勭殑鏂瑰紡浣跨敤銆傚湪Buffer绫荤殑鎻忚堪涓紝Buffer琚畾涔変负鐢ㄤ簬鐗瑰畾鍩烘湰绫诲瀷鏁版嵁鐨勫鍣紝涓旀槸鐗瑰畾鍩烘湰绫诲瀷鐨勭嚎鎬т紭鍏堝厓绱犲簭鍒椼侭uffer鎻愪緵浜嗕竴涓瓧鑺傜紦鍐插尯锛屽畠鍙互浠巆hannels涓鍙栨暟鎹埌Buffer锛屼篃鍙互灏咮uffer涓殑...