Articles of jpeg

Node.js:如何从jpg中提取embedded的缩略图,而无需首先加载完整的jpg?

我正在创build一个Raspberry Pi Zero W安全摄像机,并试图使用Node.js集成运动检测。 使用Pi相机模块以8百万像素(3280×2464像素,每张图像大约5MB)拍摄图像。 在Pi Zero上,资源是有限的,因此将整个图像从文件加载到Node.js 可能会限制我可以捕获的速度,然后评估大型照片。 令人惊讶的是,我在一个背景时间stream逝过程中每秒钟捕获大约两个8MB的图像,并希望至less每秒钟大概继续捕捉最大尺寸的图像。 一个可以帮助解决这个问题的资源就是从大图中提取embedded的缩略图(在raspistill应用程序中定制的缩略图大小)。 你有没有想法,我怎么可以从一个大的图像快速提取缩略图,而不需要在Node.js中加载完整的图像? 到目前为止,我在这里find了部分答案。 我猜我会通过一个缓冲区以某种方式pipe理这个?

如何在JavaScript中设置JPEG / PNG图像的分辨率/密度?

我需要在javascript中更改JPG / PNGtypes图像的分辨率/密度。 我需要这样做的原因是,我可以将图像发送到第三方API,然后根据分辨率/密度元数据知道每英寸有多less像素(DPI / PPI)要打印。 有没有这样的解决scheme在JavaScript?

是否有一个现成的解决scheme,根据浏览器的分辨率发送一部分隔行JPEG?

我问你是否知道是否有现成的解决scheme,而不是真的如何去做。 我很确定我可以自己动手,即使我从来没有手动触摸过JPEG的字节。 如果你想要破解它,那么你被邀请去做;) 基本的想法是,你有一个网站有一些JPEG图像,但你想尽可能减less移动用户的负载。 所以你要确保所有的JPEG都是渐进式的,只发送低频率的比特,空闲TCP连接,等待客户端报告浏览器窗口有多大的可用空间。 或者,你也可以使用某种browsercaps.ini或类似的方法,并依靠它来获得最初的解决scheme – 然后让记者在必要时进行更正。 我实际上需要这两个完全分离的环境,一个是使用PHP,另一个是使用node.js(后者更重要)。 我很确定picasaweb已经在做这个东西了,或者至less做过。 你可以看到一个图像,并逐渐加载 – 然后你可以放大它,它是块状,但继续加载逐渐,我记得,我对此印象深刻! (不公平的是,谷歌保持他们自己的酷东西,记住他们的座右铭{°«°])

节点 – 上传的jpg无法在服务器上打开

更新感谢@robertklep和@vallo指出我没有正确parsing多部分请求。 以下是更新后的服务器代码,其中包含一些来自Busboy的重新生成的示例代码: 'use strict'; // Require var http = require('http'); var Busboy = require('busboy'); var fs = require('fs'); // Server var server = http.createServer(function(request, response) { if (request.method === 'POST') { var busboy = new Busboy({ headers: request.headers }); busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { file.pipe(fs.createWriteStream(`../db/images/${filename}`)); }); busboy.on('finish', function() { response.writeHead(200, { 'Connection': 'close' […]

为什么图像没有完全显示与我的stream应用程序?

我已经写了一个简单的Node.js应用程序来传输内容(主要用于video,但其他的东西也可以)。 它似乎工作得很好,除了一些jpeg,其中图像的底部并不总是显示。 这里是一个例子,图片的底部在左侧丢失。 显示问题的网站在这里 ,没有问题的相同的网站在这里 。 (在第一个链接的大多数图像的底部应该有粉红色的位) 该应用程序的代码是在Github上 ,但我想重要的线是 stream = fs.createReadStream(info.file, { flags: "r", start: info.start, end: info.end }); stream.pipe(res); (所有的繁重工作都是由stream.js完成的,而不是我的代码。) 我已经尝试删除开始和结束参数,但没有区别。 如果将其更改为将文件stream式传输到process.stdout ,并将输出保存到文件,则会显示整个图像。 一个文件比较程序说stdout和原来的文件是一样的。 如果我转移除基线jpeg以外的东西(所以即使渐进式jpegs工作),它显示整个文件。 如果我通过链接的Node.js应用程序(使用Express)访问文件,但不通过stream式传输器,它显示整个图像。 如果我从浏览器中将不完整的图片保存到桌面,则会保存整个图像。 对于一些JPEG的作品,但不是最。 这个问题发生在本地和我的服务器上(Windows 2008 R2和Ubuntu 11)。 浏览器testing(超过3台计算机和1个虚拟机) Safari 4,5 – 作品 火狐4,11(2电脑) – 不起作用 Chrome 18(2台电脑) – 不起作用 IE 8 – 不起作用 IE 9 – 作品 歌剧11 […]

如何解决致命错误使用imagemin插件时写EOF

新的咕噜,使用grunt-contrib-imagemin来优化我的图像。 默认设置与PNG很好地工作并且保存了很多。 但是jpegs几乎没有任何节省。 我正在尝试使用一个imagemin插件来处理jepg压缩。 我得到了mozjepg工作很容易使用这个gruntfile – http://pastebin.com/z3eL3uZU[1] 问题是,mozjepg仍然几乎没有保存从图片的任何kb。 所以我试图find一个真正压缩jpegs的imagemin pligin。我find了这两个,想尝试但不能让他们工作。 第一个是https://www.npmjs.com/package/imagemin-jpeg-recompress[2] ,我的gruntfile看起来像这样 – http://pastebin.com/7cXTLYe7[3] – CLI错误是这个 C:\Users\bmildren\Desktop\Sites\grunt-test>grunt imagemin:jpg Running "imagemin:jpg" (imagemin) task Fatal error: write EOF C:\Users\bmildren\Desktop\Sites\grunt-test> 同样的事情基本上也发生在这个imagemin插件https://www.npmjs.com/package/imagemin-jpegoptim[4]任何人都知道如何解决这个问题?

如何检测Node.js中损坏的图像文件?

我正在寻找一些通用库来检查下载的图像是否损坏。 我发现使用ImageMagick的https://www.npmjs.com/package/gm 。 我可以使用ImageMagick中的identify来查找完全破碎的图像(我甚至无法打开)。 但也有部分破碎的图像 – 例如jpeg文件,其中一半的图像是灰色的,并且这些图像没有被标记为由gm破坏。 如何检查image.js腐败的图像? 谢谢! 编辑: 我想要检测的是没有完全下载的图像。 通过剪切最后n个字节的图像可以达到类似的效果。 我想有可能以编程方式检测它,因为在详细模式下识别commend返回: identify: Premature end of JPEG file broken_example.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. identify: Corrupt JPEG data: premature end of data segment broken_example.jpg' @ warning/jpeg.c/JPEGWarningHandler/352. 例如(不幸imgur会砍掉破碎的图像,所以我不得不上传截图): 破碎的图像

如何从API响应中parsingJPEG并发送到Node.js / Express的前端

我正在使用Google的Street View Image API来获取一个jpeg,然后我想通过Node.js / Express后端的响应体传递给我的前端。 目前,我的getStreetView函数从Google API获得正确的响应。 然后,我将这个response.body (jpeg)传递给我自己的请求处理程序。 但是,当我向该处理程序发出请求时,尽pipe请求已成功,并且包含了我已经分配的包含'Content-Type': 'image/jpeg'标题'Content-Type': 'image/jpeg' ,但图像不显示。 图像数据存在,它只是不显示: 所以要重申 – Postman对API的请求显示图像。 当我的处理程序调用getStreetView ,该请求也正在工作。 但是,它传递给GET /city时,它收到的图像不知何故正在翻译中。 这是一个编码问题? 我只是发送图片url而不是图片本身,但url包含我的API密钥 – 我认为这可能会让我在客户端易受攻击。 任何帮助非常感谢! var getStreetView = function(newLat, newLong, callback) { var api_key = process.env.API_KEY; var url = 'https://maps.googleapis.com/maps/api/streetview?' + 'size=' + 400 + 'x' + 400 + '&location=' + newLat + […]

通过http-node.js发送jpg的问题

我试图写一个简单的HTTP Web服务器,(其中包括其他function),可以发送客户端请求的文件。 发送一个普通的文本文件/ HTML文件作为一种魅力。 问题是发送图像文件。 这里是我的代码的一部分(parsingMIMEtypes,并包括fs node.js模块): if (MIMEtype == "image") { console.log('IMAGE'); fs.readFile(path, "binary", function(err,data) { console.log("Sending to user: "); console.log('read the file!'); response.body = data; response.end(); }); } else { fs.readFile(path, "utf8", function(err,data) { response.body = data ; response.end() ; }); } 为什么我打开的http://localhost:<serverPort>/test.jpg是空白页面?

nodejs读取图像数据

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