Tag: 图像

用Node.js请求库保存图像文件会导致exception

这是从请求的 Github回购 – https://github.com/mikeal/request 您可以将任何响应stream式传输到文件stream。 request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')) 我已经修改它像这样,其中largeImage是从第三方网站的绝对path。 request(largeImage).pipe(fs.createWriteStream('./img/large/demo.jpg')); 但是我得到以下错误(不知道为什么?)。 我已经看了createWriteStream API,它似乎是正确的。 如果我只包含“demo.jpg”,它工作正常。 但是如果我在“demo.jpg”旁边包含path,则会引发exception。 stream.js:81 throw er; // Unhandled stream error in pipe. ^ Error: ENOENT, open './img/large/demo.jpg' 10 Oct 16:51:02 – [nodemon] app crashed – waiting for file changes before starting… 更新:问题是我没有在/ img /之前包含./public/文件夹。 此更新的代码正常工作: request(largeImage).pipe(fs.createWriteStream('./public/img/large/demo.jpg'));

使用gulp-imgmin不止一次压缩或缩小图像是不好的?

我试图决定是否应该只压缩/缩小所有图像,并让它们相互覆盖,或者是否应将每个图像的缩小/压缩版本存储在单独的文件夹中? 继续压缩已压缩的图像会不好吗?

nodejs读取图像数据

有没有图书馆阅读JPEG图像数据? 我想获得一个JPEG的像素。 我只find类似node-jpeg或gm的库,但是它们不提供图像数据。

如何在服务器端渲染图像?

如何使用React在服务器端渲染图像和css文件? 这是我的服务器代码: const express = require('express') const router = express.Router() const ReactDOM = require('react-dom/server'); import Master from '../../../client/Master' router.get('/', (req, res) => { res.render('test.html', {reactOutput: ReactDOM.renderToString(<Master/>)}); }); 主要组件: import React from "react"; import Intro from "./pages/Intro"; import Footer from "./components/Footer"; import Header from "./components/Header"; export default class Master extends React.Component { constructor() { super(); this.state […]

Node.JS – 将缓冲图像数据caching到Uint8ClampedArray格式

我正在尝试将图像数据传输到一个我已经在浏览器中成功使用的函数。 浏览器中的代码如下 var myImageData = context.getImageData(0, 0, width, height); var gray = tracking.Image.grayscale(myImageData.data, width, height); 这工作得很好,从我所了解的似乎是从canvas的图像生成一个ImageData对象。 ImageData对象的.data属性看起来Uint8ClampedArray读取[r1, g1, b1, a1, r2, g2, b2, a2…..]的Uint8ClampedArray查看模式,每四个数字是255 ,这是有意义的因为没有任何图像是透明的。 我试图得到这个在Node.JS以类似的方式工作,除非我从https://github.com/lovell/sharp生成的缓冲区中获取我的图像数据, 请参阅下面的代码: sharp(body) .resize(newWidth, newHeight) .raw() .toBuffer(function (err, buffer, info) { var gray = tracking.Image.grayscale(buffer, newWidth, newHeight); }); 问题是 – 这显然不起作用。 我不能直接将缓冲区传递给函数。 我已经尝试了很多东西,而实际向我展示的数组的唯一过程是buffer.toJSON().data 。 看看这些数字都是在255以下,但是我看不到任何每个第四个数字是255模式,这表明有什么错误。 我的问题是: 我怎么能得到一个Uint8ClampedArray的正确[r1, g1, b1, a1, […]

使用jsdom或Canvas获取Vibrant.js色板的node.js

我有一个使用jsdom或Canvas在node.js中获取图像的过程。 在下载过程中,我想在后端使用Vibrant.js提取色板。 下面的代码都不起作用。 使用jsdom const Vibrant = require('node-vibrant'); const request = require('request'); var jsdom = require("jsdom").jsdom; var window = jsdom().defaultView; var document = jsdom('<html><body></body></html>', { features: { FetchExternalResources : ['img'] } }); var imgDom = document.createElement("img"); imgDom.onload = function() { console.log('onload triggered'); // var imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC'; // var imgData = imgDom.replace(/^data:image\/gif;base64,/, "") // var […]

如何比较图像,并确定哪些内容更多?

目标:我想从animationGIF抓取最好的框架,并将其用作静态预览图像。 我相信最好的框架是展示最多内容的框架 – 不一定是第一个或最后一个框架。 以这个GIF为例: – 这是第一帧: – 这是第28帧: 很明显,第28帧代表了整个GIF。 我怎样才能以编程方式确定一个帧是否有更多的像素/内容比另一个? 任何想法,想法,包/模块或文章,你可以指向我将不胜感激。

如何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检索图像。 任何想法感激! 谢谢,