Tag: base64

将graphics魔术输出的图像转换为无base64编码的响应

我有一个节点服务器,而不是存储裁剪图像,我想裁剪他们回应一个AJAX调用,并发送到客户端的方式。 我正在存储什么裁剪的信息,以及如何裁剪cookies和身体。 在服务器上裁剪,用base64编码,然后发回给用户。 这是我的代码看起来像 res.set('Content-Type', 'image/jpeg'); gm(request(body.URL)) .crop(req.cookies[name+"Width"],req.cookies[name+"Height"],req.cookies[name+"X"],req.cookies[name+"Y"]) .stream(function streamOut (err, stdout, stderr) { if (err) return next(err); stdout.pipe(base64encode()).pipe(res); stdout.on('error', next); }); 这工作,但我不喜欢它。 我只能通过在base64中编码来实现这个function,但在客户端,这似乎是很慢的解码这个图像。 我宁愿直接发送图像,但我无法得到这个工作。 在不对其进行解码的情况下翻页,导致服务器产生乱码响应。 有一个更好的方法吗? 还是未保存的图像必须编码才能发送?

最小化canvas“位图”数据大小

上下文:多用户应用程序(node.js) – 1个画家,n个客户 帆布尺寸: 650×400像素(= 260,000像素) 为了更频繁地更新canvas(我每秒思考10次),我需要保持尽可能小的数据大小,特别是在考虑上传速率时。 返回一个base64string的toDataURL()方法很好,但它包含了大量我不需要的数据(每像素23位)。 它的长度是8,088(没有前面的MIME信息),假设JavaScriptstring有8位编码,即8.1千字节的数据,每秒10次。 我接下来的尝试是使用JS对象来处理moveTo(x, y)或lineTo(x, y)等不同的上下文动作,并将它们发送到服务器,让客户端通过delta更新(通过时间戳)接收数据。 但是,结果是比base64string效率更低。 { "timestamp": 0, "what": { "name": LINE_TO, "args": {"x": x, "y": y} } } 它并不stream畅,也不准确,因为当你刷你的画笔时已经有近300条lineTo命令了。 有时会有一部分运动缺失(使一条直线而不是四舍五入),有时事件甚至不能被脚本客户端识别,因为它似乎已经被已经触发的大量事件“淹没”了。 所以我必须最终使用8.1 KB的base64string。 我不想担心这一点 – 但即使与增量更新asynchronous完成,实际服务器上也会出现严重滞后,更不用说偶尔带宽超限。 我使用的唯一颜色是#000和#FFF,所以我只考虑一个1位的数据结构 ,只使用增量更新。 这基本上就足够了,我不介意任何“颜色”的精度损失(毕竟是黑色的 )。 大部分的canvas都是白色的,你可以考虑额外的霍夫曼游程编码来进一步减小尺寸。 像一个尺寸为50×2像素的canvas,在(26,2)处的单个黑色像素将返回以下string: 75W1B74W (50 + 25白色像素,然后是1黑色像素,然后是24白色像素) 如果canvas由如下的1位string组成,那甚至会有所帮助: 00000000000000000000000000000000000000000000000000 00000000000000000000000001000000000000000000000000 这将有助于很多。 我的第一个问题是:如何编写一个algorithm来有效地获取这些数据? 第二个是:我怎样才能将纯二进制canvas数据传递给客户端(通过节点服务器 )? 我怎样才能发送一个1位的数据结构到服务器? 我需要将我的位转换为hex(或更多)的数字并重新parsing吗? 有可能将其用作数据结构吗? 提前致谢, […]

Javascript的.tiff库

有没有像canvas2image库(请看createBMP函数)在JavaScript(浏览器或nodejs)制作.tiff?

如何在JavaScript / Node中计算SHA256散列和Base64string编码

我正尝试在JavaScript中重新创build以下C#代码。 SHA256 myHash = new SHA256Managed(); Byte[] inputBytes = Encoding.ASCII.GetBytes("test"); myHash.ComputeHash(inputBytes); return Convert.ToBase64String(myHash.Hash); 此代码返回“n4bQgYhMfWWaL + qgxVrQFaO / TxsrC4Is0V1sFbDwCgg =” 这是我迄今为止的JavaScript代码 var sha256 = require('js-sha256').sha256; var Base64 = require('js-base64').Base64; var sha256sig = sha256("test"); return Base64.encode(sha256sig); JS代码返回“OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOA ==” 这些是我用过的2个JS库 https://www.npmjs.com/package/js-sha256 https://www.npmjs.com/package/js-base64 有人知道如何使它工作? 我使用错误的库吗? 非常感谢

NodeJS,OpenCV和stream媒体图像使用networking套接字

我的最终目标是将video从笔记本电脑传输到服务器。 我试图通过在笔记本电脑和服务器上使用NodeJs来实现这一点。 我使用OpenCV库来捕获笔记本电脑上的video,并将其保存为jpg文件。 然后我读取文件并将其转换为base64,以便我可以使用Node中的Net.socket模块来传输它。 这是一个连续的过程:捕获,编码和发送。 这里是传输一个jpg文件的服务器代码: var cv = require('opencv'); var fs = require('fs'); var net = require('net'); var camera = new cv.VideoCapture(0); var server = net.createServer(); server.listen('50007', '127.0.0.1'); server.on('connection', function(socket){ camera.read(function(image){ image.save('original.jpg'); fs.readFile('original.jpg', 'base64', function(err, image){ socket.write(image, 'base64', function(){ socket.end(); }); }); }); }); 在客户端循环,直到从服务器接收到FIN。 这里是客户端代码: var net = require('net'); var fs = require('fs'); […]

将base64图像string转换为可使用node.js提供给浏览器的图像文件

问题在于HTTPvalidation头没有被Restify接受,图像渲染代码是好的。 我有一个图像编码为base64string,我想用这个作为一个图像使用node.js。 目前,我已经得到了下面的代码(我使用Restify),它可以在Chrome浏览器中显示图像,但是图像不会在其他浏览器中显示(尝试IE9,Firefox4,Android浏览器): var decodedBuffer = new Buffer(dataString,"base64"); res.send({ code: 200, headers: {'Content-Type': 'image/png', 'Content-Length': decodedBuffer.length}, noEnd: true }); res.write(decodedBuffer); res.end(); 任何人都可以阐明我可能做错了什么? 谢谢

使用base64图像数据在NodeJS中进行image processing

我有一个nodejs服务器,通过websocket接收base64编码的图像。 我想对这些图像进行一些image processing并将其发送回去。 我在网上search了一下,find一些图书馆来帮助我做这件事,但是我能find的所有图书馆都是把图片存储在服务器端的某个地方,进行操作并保存图片。 显然,他们都把一个包含图像文件名的string作为input,所以我猜测他们通过文件stream手动获取图像。 我的问题是,是否有一个库可以帮助我直接在base64数据上工作(即将数据作为input传递给函数)还是应该每次将图像保存在服务器上,修改并将其发回? 我宁愿不去与后者,因为我正在做一些高性能的应用程序,所有这些保存/加载看起来浪费周期。 否则,你有没有看到其他方式可以实现这个目的(例如,获取图像文件而不保存并重新加载)? 谢谢。

node.js和PHP之间的SHA1哈希差异

我想将这部分node.js代码转换为PHP代码。 (加工) function generateHashedPass (password, salt) { var byteSalt = new Buffer(salt, 'base64'); var bytePass = new Buffer(password, 'ucs2'); var byteResult = Buffer.concat([byteSalt, bytePass]); return sha1.update(byteResult).digest('base64'); } console.log(generateHashedPass('111111', 'UY68RQZT14QPgSsfaw/F+w==') === 'L0xc787MxCwJJaZjFX6MqxkVcFE=' ? "Algo correct" : "Algo wrong" ); 现在我有这样的东西在PHP中:( 不工作) public function getHashedPass($pass, $salt) { $base_salt = unpack('H*', base64_decode($salt)); $base_pass = unpack('H*', mb_convert_encoding($pass, 'UCS-2', 'auto')); […]

Node.js和sha1

http://www.php.net/manual/en/function.sha1.php string sha1 ( string $str [, bool $raw_output = false ] ) 如果可选的raw_output设置为TRUE,则sha1摘要将以原始二进制格式返回,长度为20,否则返回值为40个字符的hex数字。 crypto = require("crypto"); console.log( new Buffer(crypto.createHash('sha1').update("some text").digest()).toString('base64') ); // N8KqY8OHc8KYw5lURzJiw6HCoAV8HmMuw5p3 console.log( new Buffer(crypto.createHash('sha1').update("some text").digest("hex")).toString('base64') ); // MzdhYTYzYzc3Mzk4ZDk1NDQ3MzI2MmUxYTAwNTdjMWU2MzJlZGE3Nw== console.log( new Buffer(crypto.createHash('sha1').update("some text").digest("base64")).toString('base64') ); // TjZwangzT1kyVlJITW1MaG9BVjhIbU11Mm5jPQ== <?php echo base64_encode(sha1("some text")); // MzdhYTYzYzc3Mzk4ZDk1NDQ3MzI2MmUxYTAwNTdjMWU2MzJlZGE3Nw== echo base64_encode(sha1("some text", true)); // <– how to reproduce it on […]

如何在Javascript / Node中从Blob中编写.wav文件

我试图用fs.writeFile写一个.wav文件。 该文件已成功创build,但它只有8-13字节长,显然我没有做正确的事情。 如果blob已经是audio / wav,我可以写入磁盘,还是需要将其转换为Base 64? 我在这里非常困惑,我发现另一个类似的线程没有答案 – 在这里 任何input将不胜感激。 routerApp.controller('audiotest', function($scope) { $scope.saveToDisk = function(){ var nw = require('nw.gui'); var fs = require('fs'); var path = require('path'); fs.writeFileSync('test.wav', $scope.recordedInput) }; } console.log($scope.recordedInput)返回Blob {size: 294956, type: "audio/wav"} 这不是真的相关,但这是我的HTML <div class="row" ng-controller="audiotest"> <div class="row"> <button type="button" ng-click="saveToDisk()"> Write this sucker to disk </button> </div> <ng-audio-recorder id='audioInput' […]