Tag: image

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的等价物?

ExpressJS /节点:404图像

我已经build立了一个基本的节点/快递服务器,公共静态JavaScript和CSS文件,但尝试提供图像时返回404错误。 最奇怪的部分是在本地运行时一切正常。 当在我的远程服务器(linode)上运行时,图像问题出现。 这真的让我挠脑袋…可能是什么问题? 这是服务器: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') var app = module.exports = express.createServer(); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })); app.use(express.static(__dirname + '/public')); app.use(app.router); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: […]

node.js在覆盖时无法提供图像

我有一个node.js应用程序定期轮询图像并将其存储到文件系统。 问题是,当node.js覆盖图像时,那个时候访问网站的人会在任何地方看到空白图像(因为那时候图像被覆盖)。 只有在几秒钟的时间内才能轮询图像,但是这很烦人。 无论如何,当我们覆盖它时,仍然能够提供图像吗? 保存/覆盖图像的代码: // This method saves a remote path into a file name. // It will first check if the path has something to download function saveRemoteImage(path, fileName) { isImagePathAvailable(path, function(isAvailable) { if(isAvailable) { console.log("image path %s is valid. download now…", path); console.log("Downloading image file from %s -> %s", path, fileName); var […]

Javascript的.tiff库

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

使用express.js和节点上传文件,限制扩展

我正在处理file upload使用express.js和节点,并具有基本function工作。 我需要的是实施一些安全措施 – 即限制上传到某些格式(PNG,JPEG)。 有没有简单的方法只允许某些格式? 它会进入身体parsing器吗? app.use(express.bodyParser({ uploadDir: __dirname + '/public/uploads', keepExtensions: true })); app.use(express.limit('4mb')); 我还有其他的安全措施吗? 从图像中擦除EXIF数据通常是一个好主意? 谢谢, 本

将图像作为框架添加到gif

所以我想创build一个gif并添加一个图像作为一个框架。 我正在使用gifencoder。 我见过的例子,它很容易添加颜色,TXT等,但我无法弄清楚如何做一个图像相同。 我需要像png文件stream吗? 例如:从网站的彩色框架 let canvas = new Canvas(width, height); var ctx = canvas.getContext('2d'); red rectangle ctx.fillStyle = '#ff0000'; ctx.fillRect(0, 0, 320, 240); encoder.addFrame(ctx); 编辑: 我试图做下面的事情,而框架出现在我的日志,因为想要的帧不添加,没有错误。 在有人build议将base64转换成png / gif之前,这个模块不能添加这样的帧,这就是说,如果你有另外一个想法,请继续说下去。 fs.createReadStream('test.gif') .pipe(new GIFDecoder) //gif-stream .pipe(concat(function(frames) { //concat-frames console.log(frames); for (var i=0; i<frames.length; i++) { encoder.addFrame(frames[i]); } })); 无论我什么尝试充其量我只得到一个黑色的GIF,没有更多。 编辑2: 好吧,所以我试图从gif框架中添加的原因,是因为它看起来更简单。 下面是我尝试获取图像的过程,将其转换为RGBA(我注意到模块接受rgba格式,而不是rgb,也许这就是为什么它总是黑色),然后添加框架。 如果我有数据,添加框架是非常容易的,因为我只是简单地调用一个方法并将数据推入,所以我将会离开它。 var request = […]

将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(); 任何人都可以阐明我可能做错了什么? 谢谢

如何使用低分辨率的裁剪照片作为指导重新裁剪原始的更高分辨率的副本?

我有一张正方形的,低分辨率的照片,已经被用户从高分辨率,非正方形的原稿中裁剪出来。 低分辨率的照片然后被调整为缩略图。 我想自动(不需要用户干预)以相同的方式重新裁剪原始照片,以获得更高分辨率的正方形版本。 我没有访问原始的修剪器坐标。 我只有这两张照片。 下面是一些示例图片(来自我的Facebook个人资料)来说明我的意思: 原始的,高分辨率的照片 – 裁剪,然后缩小,方形照片 再次,目标是使用小照片作为指导从源头获得更高分辨率的方形照片。 解决scheme的唯一限制是: 普遍性:我正在使用这个configuration文件图片,所以如果它只适用于完全可以接受的面孔! 没有必要推广到各种随机图像,人们的照片是一个很好的起点。 平台:我正在使用Node,但我很乐意在Ruby,Python,Java或C ++(使用Node绑定)中运行此过程。 它几乎肯定会在Heroku或AWS上运行。 速度:这将需要非常快速。 为了这是有用的,它将不得不以联机的方式运行,因为我会阻止用户的界面等待这个动作。 有没有人有任何想法? 我对image processing知之甚less,所以我不知道从哪里开始。 编辑:对于Facebook,具体来说,有一个解决scheme,几乎没有这么难。 原始作物数据可用于configuration文件图像: https : //graph.facebook.com/bcherry/profile?fields=pic_crop 这会让我立即陷入困境,但可能不是一个长期的解决scheme,所以下面提供的答案对于更一般的问题还是很有帮助的。

在Mongodb中存储图像为Nodejs提供服务

我知道Mongodb可以用两种方式存储图像。 在一个常规的文件中,将图像存储为二进制文件 通过Gridfs来pipe理更大的图像。 为了简单起见,因为我打算服务器的图像很小,我会select1。 为了将图像提供给浏览器,我使用了nodejs。 我的问题是这将是多么困难? 如何将二进制数据转换为浏览器可以理解的实际图像? 涉及什么types的编码? 你能指点我在网上其他地方的教程/例子吗? 顺便说一句,我知道这可能不是一个好主意,因为性能的原因,我计划caching一次服务的图像。 我只是想避免文件系统。