Articles of 图像

如何pipe道到一个文件(NodeJS)

我已经创build了一些我从像素中获得的图像数据。 无论如何,现在我想写一个文件使用保存像素 ,但文档只给 var savePixels = require("save-pixels") … savePixels(pixels, "png").pipe(process.stdout) 如何重写这个,把它写入一个具有特定名字的文件?

在Node.js中用fs.createReadStreamreplacefs.readFile

我有从目录中读取图像并将其发送到index.html的代码。 我想用fs.createReadStreamreplacefs.readFile,但我不知道如何实现这一点,因为我找不到一个很好的例子。 这是我得到(index.js) var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var fs = require('fs'); http.listen(3000, function () { console.log('listening on *:3000'); }); app.get('/', function (req, res) { res.sendFile(__dirname + '/public/views/index.html'); }); io.on('connection', function (socket) { fs.readFile(__dirname + '/public/images/image.png', function (err, buf){ socket.emit('image', { image: true, buffer: buf.toString('base64') }); }); }); […]

在Mongo GridFS或Amazon S3中存储图像的速度更快?

我正在开发一个项目,每个用户都可以发布多个图像。 我们使用Node.js和Express和MongoDB作为数据库。 我想知道哪种方法在速度和可伸缩性方面会更好: 在Mongo GridFS中存储图像 要么 在Amazon S3上存储图像,在MongoDB上存储图像path。 然后使用path检索图像。 任何想法感激! 谢谢,

在图像中查找类似颜色的区域

一段时间以来,我一直在研究这个问题,结果很有希望。 我正在尝试将图像分成类似颜色的连接区域。 (基本上将所有像素的列表分成多个组(每组包含属于它的像素的坐标并共享相似的颜色)。 例如: http : //unsplash.com/photos/SoC1ex6sI4w/ 在这个图像中,顶部的乌云可能会分成一组。 一些在另一个山上的灰色岩石,另一个在一些橙色的草地上。 雪将是另一个 – 背包的红色 – 等等 我试图devise一个既准确又高效的algorithm(它需要在中等规模的笔记本电脑级硬件上以ms为单位运行) 以下是我所尝试过的: 使用基于连接组件的algorithm,从左上方扫描每个像素,从左到右扫描每一行像素(并将当前像素与顶部像素和左侧像素进行比较)。 使用CIEDE2000色差公式,如果顶部或左侧的像素在一定的范围内,那么它将被认为是“相似的”并且是组的一部分。 这种工作 – 但问题是它依赖于具有锐利边缘的颜色区域 – 如果任何颜色组通过软梯度连接,则它将沿着该梯度行进并继续“连接”像素,因为各个像素之间的差异是比较小到可以被认为是“相似”的。 为了解决这个问题,我select将每个访问像素的颜色设置为最“相似”相邻像素的颜色(顶部或左侧)。 如果没有相似的像素,则保留其原始颜色。 这在一定程度上解决了更模糊的边界或软边缘的问题,因为随着algorithm的进展,新组的第一个颜色将被“携带”,并且最终该颜色和当前比较的颜色之间的差异将超过“相似性”不再是该组的一部分。 希望这是有道理的。 问题是这些选项都没有真正的工作。 在上面的图片返回的不是干净的组,但嘈杂的碎片组是不是我所期待的。 我并没有专门寻找代码 – 但是更多的想法是如何构build一个algorithm来成功地解决这个问题。 有没有人有这个想法? 谢谢!

Node.js Base64图像解码和写入文件

我将这个Flex表单的内容(不要问为什么)发送到节点。 有一个名为“照片”,这是一个base64编码图像后参数。 照片的内容得到发送好。 问题是当我试图解码内容并将其写入文件。 var fs = require("fs"); fs.writeFile("arghhhh.jpg", new Buffer(request.body.photo, "base64").toString(), function(err) {}); 我试过toString(“二进制”)。 但似乎节点不解码所有的内容。 它似乎只解码JPG头信息,剩下的。 任何人都可以帮我这个吗? 谢谢

如何与gm node.js组合?

如何用GM Node.js做'gm composite -gravity center change_image_url base_image_url'? 如何调用gm().command() & gm().in()或gm().out()来实现上面的?