Tag: 图像

使用nodeJS提高发送静态图像的速度

我有一个典型的客户端/服务器应用程序,我可以发送图像到服务器,我需要不同大小的客户端上的图像。 所以目前我使用的Andr oid毕加索加载图像,并与nodeJS我服务的图像作为静态文件,因为他们被保存在静态文件所在的文件夹。 我的问题是:有没有办法提高发送这个静态文件(只是图像)的速度,或者我可以减less他们的大小使用我目前的静态文件的代码? app.use(express.static(path.join(__dirname, 'public'))); 目前我从客户端以base64的forms接收图像,并在服务器上将其转换为像这样的位图: var bitmap = new Buffer(req.body.base64,'base64'); 并将该位图存储在我用作静态文件夹的公用文件夹中,因为这是不好的做法,所以我不直接将图像存储在数据库中,我只是保存path,每次我想要检索静态文件夹内的图像在哪儿。 所以每次在我的客户端,我想回顾一下照片我只需要知道什么是静态path,没有更多。 为了更好的理解,我在这里留下了我的控制器的代码,我保存的照片。 调节器 sendPicture: function (req, res, next) { var plant = null if (req.params.id != 0) { plant = req.params.id; } var bitmap = new Buffer(req.body.base64, 'base64'); var lat = req.body.lat; var lon = req.body.lon; var alt = req.body.alt; var date […]

在Angular4中渲染缩略图

我正在尝试将我从Java服务获得的图像渲染为InputStream ,并通过NodeJS Express服务器重新发送,最后将其渲染为Angular4 这就是我所做的: Java Jersey服务: @GET @Path("thumbnail") @ApiOperation( value = "Gets document preview", notes = "Gets document preview" ) @ApiResponses(value = { @ApiResponse(code = 200, message = "Preview of the document") }) @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces("image/png") public Response getDocThumbnail( @ApiParam(value = "Entity UUID", required = true) @FormDataParam("uuid") String uuid ) throws RepositoryException, UnknowException, WebserviceException, PathNotFoundException, DatabaseException, […]

如何处理nodejs中的数组缓冲区分配失败?

我已经成功上传imagejs中的图像,我使用的是multer。 但有时会发生“arrays缓冲区分配失败”错误,我想处理该错误。 我试图保持try-catch块中的代码,尽pipe它仍然抛出错误,我无法弄清楚如何处理这个错误或如何避免这个错误? 能够上传文件,但当我尝试改变高度和宽度,并制作一个新的形象,则会引发错误 未捕获RangeError:arrays缓冲区分配失败 在Buffer.Uint8Array(native) 在FastBuffer(buffer.js:8:1) 要么 arrays缓冲区分配失败 在Buffer.Uint8Array(native) 在FastBuffer(buffer.js:8:1) RangeError:数组缓冲区分配在Object.getData(/ Burg_nodejs / node_modules / jpeg-js / node_modules / (/Burg_nodejs/node_modules/jimp/index.js:lib / decoder.js:913:23)在Object.decode(/Burg_nodejs/node_modules/jpeg-js/lib/decoder.js:985:11) 310:36)at /Burg_nodejs/node_modules/jimp/index.js:202:29 at FSReqWrap.readFileAfterClose [as oncomplete](fs.js:446:3) 任何build议将会更有帮助

添加并保存一个圆形蒙版框图像

我想申请一个透明的圆形掩码来把png图片发送到我的node.js服务器; 这样我就可以在旧的浏览器和电子邮件客户端中显示圆形图片。 我已经使用节点canvas来调整和裁剪我的图片,所以我想知道这种图片处理是否可以通过canvasAPI来完成。

如何用Node.js保存图像(以base64编码的stringforms传入)

我在我的Meteor应用程序上创build了一个带有Phantom.js的HTML5canvas,我试图将canvas图像保存在磁盘上。 问题:保存的图像文件似乎已损坏(无法在图像查看器中打开)。 我从HTML5的Canvas.toDataUrl方法得到了一个base64编码的PNG图像。 这是我从Canvas.toDataUrl()函数保存的输出如下所示:WzMyLDMyLDU4LDQ3LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSw0NywxMTksMTAxLDk4LDExMiw5NywxMDMsMTAxLDQ2LDEwNiwxMTUsNTgsNTAsNTYsNDksMTBd 这是我的保存程序: var buffer = new Buffer(JSON.stringify(CanvasString)).toString('base64'); var fs = Meteor.npmRequire("fs"); var fullFileName = fileName + '.png'; fs.writeFileSync(fullFileName, buffer, "binary"); 我可以使用文本编辑器(如上面的输出)将保存的图像作为明文进行查看。

imagemin error [TypeError:(input,output,opts)=> {

function minBytes(originalFilePath, destinationFilePath) { return new Promise(function (resolve, reject){ var Imagemin = require('imagemin'); console.log(originalFilePath) // /app/public/images/temporary/4du_QIGCJb5.jpeg console.log(destinationFilePath) // /app/public/images/database/9d605a80a2cf926513b7fb/4du_QIGCJb5-0.jpeg var imagemin = new Imagemin() .src(originalFilePath) .dest(destinationFilePath); imagemin.run(function (error, files) { if (error != null) { console.log(error) reject(error); } else { console.log(files); resolve(destinationFilePath); } }); }); }; var minBytesResult = yield Promise.resolve( minBytes(originalFilePath, destinationFilePath) ); 当我使用imagemin得到像下面这样的错误时,我错过了什么吗? […]

在node.js和graphicsmagick中创build带有背景的透明图像

如何使用Node.js中的GraphicsMagick(使用gm库)创build以下效果? 从缓冲区读取图像 设置背景颜色 模糊 不透明度 返回新的图像作为缓冲区 我正在尝试不起作用: gm(buffer) .background("#ff00aa") .blur(10,5) .operator('Opacity', 'Assign','30%') .resize(width) .toBuffer("JPG", function (err, buffer) { … }); 我想要的是这个结果:

dojo /使用NodeJS请求一个png图像数组缓冲区,并将图像返回给客户端

我正尝试使用NodeJS和ArcGIS Server REST提要中的dojo / request来请求png图像,并将图像返回给客户端。 我需要nodeJS为请求添加一个令牌作为查询参数,因为我的服务是安全的,我想通过节点而不是在资源服务器(ArcGIS Server 10.3)上控制它们的安全性。 图中没有nodeJS,png加载到浏览器中。 这是一个调用返回一个PNG图像的(打开的)示例,使用它们的标准REST提要: https : //sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/MapServer/1/images/257104fa1b21d7b483c160ee8f3943bb 我正在使用dojo / request来访问这个资源。 看起来png图像正在回到节点,但是当我res.send()回到客户端时,我在Fiddler中得到了一个“不是图像”。 我可以在hexview中看到PNG头文件,以及IHDR和IEND,但显然编码(?或其他)与直接从ArcServer返回资源时不同。 当从节点返回的客户端接收到png时,内容长度比直接从ArcServer直接发送相同的png要less一些。 (Node默认尝试使用Transfer-Encoding:Chunked,我将content-length设置为响应的长度,所以它一次发送,我相信这是客户端期望的行为)。 ESRI(ArcGIS Server)有一个新的示例存根,它正是我想要做的,然而他们使用esri / request(build立在dojo / request)客户端,并利用Blob库为客户端创build正确的响应。 https://developers.arcgis.com/javascript/jssamples/data_requestArrayBuffer.html 我们可以看到他们使用handleAs:“arrayBuffer”,我已经尝试了dojo / request,并且它对返回的png的内容似乎没有任何区别。 当他们收到响应时,他们创build一个新的Blob,然后用FileReader(我有一个节点端实现)读取它作为数据URL,并直接使用该结果作为png。 我已经尝试过ad-nausuem来复制这个,但是看起来节点没有一个可靠的Blob库(我没有尝试过“Blob”),并且我在节点中读到了你应该使用Buffers。 不pipe我传递给fileReader,我得到的错误“不能读取文件”(我已经尝试所有的fileReader方法)。 fileReader库: https : //www.npmjs.com/package/filereader ESRI代码: esriRequest(url, {handleAs: "arrayBuffer"}).then(function(response) { reader.readAsDataURL(new Blob([response], { type: "image/png" })); //reader.result is png ready to use client […]

如何将graphics呈现为节点中的图像

我想在服务器上以图像格式呈现堆叠的条形图。 预期的用途是推到像不支持SVG的Twitter这样的服务。 以及代码被部署到像Heroku这样的服务 我已经尝试了Plotly(他们的节点包太可怕了,他们的API文档很差)。 我也看过Google Graph,Chart.js和AnyChart,但是他们不支持渲染图像,因为我可以看到

OpenCV – 将图像保存在数据库nodejs中

我会很感激,如果有人可以帮我解决这个问题:我使用opencv与nodejs( https://github.com/TanaseButcaru/node-opencv ) 我有一组照片,我喜欢用opencv readImage函数读取这些照片,然后将其保存在数据库中。 photos.map(async(photo) => { cv.readImage(`${__dirname}/${photo}`, function (error, matrix) { //insert in DB} 你知道如何保存这个“matrix”在数据库中,然后用它来检索图像并比较它(图片相似性)?