【问题标题】:get dominant color of an image node js获取图像节点js的主色
【发布时间】:2016-09-06 12:35:48
【问题描述】:

我正在尝试获取计算机上图像的主要颜色。 我在使用此代码之前安装了imagemagickdominant-color。 我得到了undefined000000 的结果。

为什么会这样?我做错了什么?

var AWS = require('aws-sdk'),
fs = require('fs');
var express = require("express");
var app = express();

const resizeImg = require('resize-img');
var color = require('dominant-color'),
    imgPath = './Users/ADIBAR/Desktop/cloud/beach_life-normal.jpg';

color(imgPath,function(err,color){
    console.log(color);
})

color(imgPath,{format:'rgb'},function(err,color){
    console.log(color);
})

// For dev purposes only
AWS.config.update({ accessKeyId: '', secretAccessKey: '' });

var fileStream = fs.createReadStream('beach_life-normal.jpg');
fileStream.on('error', function (err) {
  if (err) { throw err; }
});  

fileStream.on('open', function () {
  var s3 = new AWS.S3();




resizeImg(fs.readFileSync('beach_life-normal.jpg'), {width: 128, height:128}).then(buf => {
    fs.writeFileSync('beach_life-normal-new.jpg', buf);
    //upload//
    s3.putObject({
      Bucket: 'adinoauploadefile',
      Key: 'beach_life-normal-new.jpg',
      Body: 'beach_life-normal-new.jpg'
    }, function (err) {
     if (err) { throw err; }
    });
  });  
});

【问题讨论】:

  • 您是否从color 回调中得到任何错误?
  • console.log(err) 给你undefined?还是console.log(color)的结果?
  • console.log(color)
  • 好的,如果在console.log(err) 行中添加console.log(color) 之前会得到什么?
  • 它写入错误:命令失败:无效参数 -/Users 并写入 console.log =>null

标签: javascript node.js image amazon-s3 colors


【解决方案1】:

您的问题似乎出在图像路径上 - 要么使用绝对路径:

imgPath = 'C:/[path to your file]/Users/ADIBAR/Desktop/cloud/beach_life-normal.jpg';

或相对的(将图像与脚本放在同一文件夹中):

imgPath = './beach_life-normal.jpg

【讨论】:

  • 我之前尝试过更改imgPath(图像与我的app.js在同一个文件夹中),但仍然出现同样的错误。
猜你喜欢
  • 2012-11-28
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2014-05-27
相关资源
最近更新 更多