Articles of image

使用node.js调整图像大小

我用node-webkit写了一个小工具。 我selectnode-webkit的一个原因是,将应用程序分发到所有主要平台很容易。 我现在想做的事情是调整位于文件存储上的一堆图像的大小。 我发现大量的包通过ImageMagick做到这一点。 这将需要用户安装ImageMagick,这是不好的… 使用web服务是没有select的。 可以容易地有大约600个图像。 如果没有解决scheme,我将只运行那个任务如果imagemagick安装。

节点jsdynamic图像 – 错误

这段代码是用来创build基于高度和宽度参数设置的dynamic图像..说localhost:3000/50/50会给一个宽度50和高度50的图像..我使用这个代码,我从github得到。我在我的系统中安装了imageMagick。 var http = require('http'); var url = require('url'); var fs = require('fs'); var gm = require('gm'); var server = http.createServer(function(request, response){ var url_parts = url.parse(request.url).path.substring(1).split("/"); var width = parseInt(url_parts[0]); var height = parseInt(url_parts[1]); var max = Math.max(width, height); if(!isNaN(width) && !isNaN(height)) { response.writeHead(200, {'content-type': 'image/png'}); gm('nodejs.png'). resize(max, max). crop(width, height, 0, 0). stream(function(err, stdout, […]

如何在Node.js中将base64解码为图像文件?

我知道这个问题被问了几次,但不幸的是,似乎没有任何工作对我来说。 我张贴img的src到我的节点/快递。 它看起来像这样: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JF … UUUUAFFFFAH/2Q== 数据保存在图片中。 我裁剪的数据:图像的东西,并得到了原始的base64和文件types。 var result = { "type":"", "data":"" } var matches = picture.match(/^data:image\/([A-Za-z-+\/]+);base64,(.+)$/),response = {}; result.type = matches[1]; result.data = new Buffer(matches[2], 'base64'); require('fs').writeFile(mediaFolder+'/test.'+result.type, result.data, "binary", function(err){ res.status(500).send("error"); }); res.status(200).send("success"); 当我尝试打开保存的图像时,会说:损坏或太大。 我也尝试在writeFile方法中设置“binary”参数。 客户端总是获得200 http状态。 我不知道这有什么问题。 我用在线解码器检查了原始的base64string。 它工作完美。 我logging每一个string/比赛,一切看起来对我来说没问题。 任何帮助将很好解决这个问题。 提前致谢! 编辑: 这是我发送图片的方式: var base64Image = $('#show-picture').attr('src'); xmlhttp.open("POST","/webapp-ajax",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("picture="+base64Image);

使用node.js从图像文件中获取像素数组

是否有可能使用node.js从本地图像文件获取RGB值的数组? 我正在尝试编写一个脚本,它将文件path作为其参数,并返回一个表示像素数据的数组。 function getPixelArray(filePath){ //return an array of RGB values that correspond to the image }

节点:下载没有pipe道输出的jpeg的原始字节

这是我想要做的: 从API提供给我的URL中检索图像的原始数据(jpeg) 将原始数据或缓冲区传递给将其上传到另一个服务器的函数 切勿将图像移动到磁盘上 我已经按照我可以find的每个例子(这不是pipe道到磁盘),但内容仍然损坏。 我试图强制各种“接受编码”(gzip,deflate),但他们基本上解决了相同的数据,只是压缩。 我相信这与响应编码有关,而不是我如何要求数据。 以下是目前的代码: var parsedUrl = require('url').parse(PATH_TO_IMAGE) var params = { hostname: parsedUrl.hostname, path: parsedUrl.path, } return http.get(params, function(photo_res) { var photoData = ''; res.setEncoding('binary'); photo_res.on('data', function(chunk) { photoData += chunk; }); photo_res.on('end', function() { // DO STUFF TO UPLOAD IMAGE }); photo_res.on('error', function(err) { console.error('Unable to download photo:', err); […]

在哪里把图像文件在node.js?

我在Linux中有以下目录结构,只有3个文件: /家庭/ NIKHIL / test_img / server.js page.html中 pic.jpg 这是一个简单的node.js hello world设置,不使用express或任何其他库 代码为server.js var http = require("http"), fs = require('fs'); var path = require('path'); var root = path.dirname(require.main.filename); var filePath = path.join(root + '/page.html'); var port = 8889; function onRequest(request, response) { fs.readFile(filePath, function (err, html) { if (err) { throw err; } response.writeHead(200, {'Content-Type': […]

Node.js连接不正确的服务图像

我目前正在尝试使用Node.js和连接编写一个非常简单的Web服务器,基本上只是静态地提供一个目录。 var server = connect.createServer(); server.use(connect.logger()); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 这基本上是工作,我可以连接到服务器和它的服务index.html给我。 当我尝试提供图像(无论是在HTML或直接打开他们的url)时,会发生问题。 他们服务,但似乎并不完全,产生这样的结果: 我看着头,但找不到任何明显的缺陷。 正确的内容大小是在那里,我唯一觉得很奇怪的是内容types似乎丢失,但似乎浏览器正确地计算出来。 有趣的是,如果我手动提供图像,它的工作。 所以使用这个代码图像是正确的: var server = connect.createServer(); server.use(connect.logger()); server.use(function(req, res, next) { console.log(req.url); if (req.url != "/testimage.png") { next(); return; } var data = fs.readFileSync(DOCUMENT_ROOT + req.url); res.writeHead(200, {'Content-Type': 'image/png'}); res.write(data); res.end(); }); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 任何想法,为什么连接图像不起作用? 由于这是一个相当小的例子,我觉得奇怪它不工作…。 我了解连接有问题吗? 更新 我追查了一下。 这似乎是发送模块的stream媒体组件的一个问题 – 它从来没有停止stream式传输文件,但无休止地重复它。 […]

删除节点中的图像背景

我正在从事捕捉用户的面部并将其放在现有模型上的项目。 为了结合人脸和模型的图像,我使用节点的gm库; 和面部检测我使用的是opencv。 我能够做到既检测脸部,又把它放在模型上。 但问题是我的模型是透明的背景,但用户的脸不(因为脸从相机捕获)。 我想删除脸部的背景,使其透明。 有什么办法可以做到这一点吗? 这是我的集成代码: gm() .in('-page', '+0+0') .in("public/" + modelImagePath) .in('-page', '+130+45') .in(newDir + '/crp.png') .mosaic() .write(resultantImage, function (err) { if (err) console.log(err); }); 这里crp.png是人脸图像,modelimagepath是模型图像完整的opencv + gm代码: cv.readImage(newDir + "/zxcv.png", function(err, im){ im.detectObject(cv.FACE_CASCADE, {}, function(err, faces){ console.log("into detec:" + faces.length + "," + faces[0]); if ( faces.length > 0) { var […]

canvas图像质量问题

我试图模拟canvas中的background-size: cover属性。 我得到了它的工作,但质量很差。 这是一个小提琴 。 你可以比较这两个图像(缩小,所以你可以看到两个图像相邻): 我的代码如下所示: function drawImageProp(ctx, img, x, y, w, h, offsetY) { var iw = img.width, ih = img.height, r = Math.min(w / iw, h / ih), newW = iw * r, newH = ih * r, cx, cy, cw, ch, ar = 1; if (newW < w) ar = w […]

在NodeJS中使用GD库来复制和重新采样图像

我尝试,不成功,在PHP GDfunctionimagecopyresampled NodeJSfind一个等效。 这不是简单地调整图像的大小,而是获取图像的一部分,然后将其放入另一个图像。 我find这个库: 克 帆布 ImageMagick的 easyimage 节点-GD 但他们没有相同的东西。 这与函数imagecreatetruecolor是一样的,他们只是简单地resize/裁剪图像,而不select偏移量和指定的宽度/高度select图像的一部分。 有没有人知道NodeJS的等价物?