当我尝试通过我的Grunt任务上的node-imagemagick运行ImageMagick时,我从ImageMagick收到此错误:
警告:命令失败:识别:无法加载模块
/usr/local/Cellar/imagemagick/6.8.8-9/lib/ImageMagick//modules-Q16/coders/jpeg.la': file not found @ error/module.c/OpenModule/1275. identify: no decode delegate for this image formatinventaire/videos/OFF_Arrestation joueur_14_petit.jpg'@ error/construct.c/ReadImage/501.使用--force继续.
为什么ImageMagick试图加载JPG编码器/usr/local/Cellar/imagemagick/6.8.8-9/lib/ImageMagick//modules-Q16/coders/jpeg.la?为什么之后会出现双斜线ImageMagick//?
这个grunt脚本在OSX 10.8上运行完美,现在在10.9.2上失败了.有人知道解决方法吗?
我正在使用gm并尝试根据它的大小处理图像.由于"size"getter需要回调函数,我不能在以下行中使用size.
我想做的是这样的:
function processImage(url) {
var img = gm(this.getImgStream(url));
var width, height;
img.size(function(err, val) {
width = val.width;
height = val.height;
});
// I want to use width here, but it's undefined when this line is executed.
if (width > 500) width = 500;
return img.resize(width)
}
Run Code Online (Sandbox Code Playgroud)
我想在下面的resize方法中使用width.有没有办法同步获取大小或等待回调完成?我不想尽可能长时间地使用伊娃.
我现在已经使用node-imagemagick好几天了,并且已经意识到它有bug.
它有大约100个分叉,其中一些修复了我遇到的一些问题,但很难弄清楚我应该使用哪个分叉.
我一直在使用ImageMagick命令行工具对图像进行jpeg压缩。但是,我试图了解采样因子的作用。它说采样因子用于指定块大小,即8x8或16x16。但是,如果省略此参数,则找不到使用的默认值。
另外,我尝试使用以下命令来获取图像的属性:
确定-verbose image.jpg
它显示采样系数值为1x1、1x1、1x1。这是什么意思?应该是8x8或16x16或32x32。
有人可以给我一个想法,在哪里找到这些细节吗?
imagemagick imagemagick.net node-imagemagick imagemagick-convert
我正在将 ImageMagick 命令集成到用 Node.js 编写的 Firebase 函数中。我已经安装了 Ghostscript 并拥有可用字体的完整列表:
convert -list font
Path: /usr/local/Cellar/imagemagick/7.0.8-10/etc/ImageMagick-7/type-apple.xml
Font: AndaleMono
family: Andale Mono
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//Andale Mono.ttf
Font: AppleChancery
family: Apple Chancery
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//Apple Chancery.ttf
Font: AppleMyungjo
family: AppleMyungjo
style: Undefined
stretch: Undefined
weight: 0
glyphs: /Library/Fonts//AppleMyungjo.ttf
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
exec(`convert ${tempFilePath} -font /Users/emma/Library/Fonts/Nunito-Regular.ttf -fill white -pointsize 60 -gravity center -draw "text 0,300 'this is a label'" ${tempFilePath}`, {stdio: 'ignore'}, (err, stdout) => {
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用node-imagemagick库调整图像大小,但它无法正常工作.
我用来调整大小的代码是
im.resize({
srcPath: __dirname+'originalimage.jpg',
dstPath: __dirname+'resized.jpg',
width: 50
}, function(err, stdout, stderr){
if (err) throw err;
});
Run Code Online (Sandbox Code Playgroud)
它抛出错误
Error: Command failed: Invalid Parameter - -set
at ChildProcess.<anonymous> (E:\NodeJsDevelopment\node_modules\imagemagick\imagemagick.js:64:15)
at ChildProcess.EventEmitter.emit (events.js:91:17)
at Process._handle.onexit (child_process.js:674:10)
Run Code Online (Sandbox Code Playgroud) 有没有办法根据ImageMagick中的映射旋转图像?该问题类似于位移映射,但是不是基于地图中的亮度/色度来扭曲和变形形状,而是基于地图旋转图像.
例如:如果我有一个模式,然后应用色度/亮度图形状,它将旋转模式并根据中点(50%)的亮度/色度差异输出它.
像这样:

我的任务是创建一组相当复杂的形状,并在它们的色度/亮度的不同角度将图案映射到它们.
这将是我必须编写的某种自定义插件,还是在IM 6中有一个简单的方法?
非常感谢!
imagemagick image-processing node-imagemagick imagemagick-convert
我正在从节点中的远程文件创建GIF,目前通过将每个图像下载到文件系统到tmp文件夹.
我想绕过将图像保存到tmp文件夹并保存在内存中.这可能吗?
如您所见,我的AWS类中有一个下载函数,它保存到tmp文件夹:
download(key){
return new Promise((resolve, reject) => {
request.head(`${this.base_url}/${this.bucket}/${key}`, (err, res, body) => {
request(`${this.base_url}/${this.bucket}/${key}`)
.pipe(fs.createWriteStream(`tmp/${key}`)).on('close', resolve )
})
})
};
Run Code Online (Sandbox Code Playgroud)
一旦他们全部下载了,我在我的GifService类中有一个createGif函数,它将每个文件路径添加为自定义参数gm,添加50ms的延迟,然后调整输出作为缓冲区,然后我上传到AWS s3.
import gm from 'gm';
...
constructor(){
this.gm = gm()
}
generateGif(images, prefix){
return new Promise((resolve, reject) => {
// for each image we want in array, we pass to gm
images.forEach(image => {
this.gm.in(`tmp/${image.Key}`)
})
// Now we create the gif with 50sec delay between images, sized to 600px x 2
this.gm
.delay(50) …Run Code Online (Sandbox Code Playgroud) { Error: Command failed: identify: delegate failed `'ufraw-batch' --silent --create-id=also --out-type=png --out-depth=16 '--output=%u.png' '%i'' @ error/delegate.c/InvokeDelegate/1919.
identify: unable to open image `/tmp/magick-53080Z_JGYvtuPOl8.ppm': No such file or directory @ error/blob.c/OpenBlob/2841.
Run Code Online (Sandbox Code Playgroud)
在我的节点应用程序中使用 ImageMagick 时遇到问题我进行了搜索,但无法为我的问题找到正确的解决方案。
我正在尝试在 Visual Studio 2010 中编写一个示例 ImageMagick 程序。我的系统上已经安装了 ImageMagick 的二进制分发版,因为我可以使用 ImageMagick 的命令行界面。
但是,当我尝试在我的 C++ 程序中包含“Magick++.h”时,它说它无法打开源文件。
我找到了有关从源代码编译和构建 ImageMagick 的说明,但是是否可以更改我的 Visual Studio 项目设置,以便它可以从已安装的 ImageMagick 版本中选择必要的引用/库?
imagemagick imagemagick.net node-imagemagick imagemagick-convert
我正在使用gm模块。这是我的代码:
gm(picture.path).thumb('250', '180', picture.thumb_path, 100, function (error) {
if(error) console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
但结果大小有时是 249x180。我需要 250x180
我正在使用GraphicsMagick作为节点.我基本上裁剪照片并检索用户上传的照片的exif数据.我不想阻止等待这些任务完成的请求流,因此我需要使用异步函数来完成.而且我认为我应该能够这些是node.js本身就是异步的I/O操作.
但是我看到GraphicsMagick for node中的所有函数都是同步函数.所以我无法确定如何实现我正在寻找的东西.
我想到的一个想法是编写一个带回调的函数,并在其中完成GraphicsMagick处理.并使用.nextTick()函数实现异步流程.但我不完全确定这是否正常.还有GraphicsMagick的任何异步函数.
请帮助我,一个示例代码将非常感谢如何从graphicsmagick获取异步函数.
如何使用https://github.com/rsms/node-imagemagick在图像周围添加更多空白?例如原始图像是width:300, height:100,我想生成新图像是width: 600, height: 200原始图像位于中心保持原始大小,在周围添加空白以成为新图像。
我尝试了下面的代码,但这使原始图像变成 600*200 ...如何解决它?
function cropGravity(srcFilePath, dstFilePath, resizeWidth, resizeHeight, quality, gravity) {
return new Promise(function (resolve, reject){
im.crop({
srcPath: srcFilePath,
dstPath: dstFilePath,
width: resizeWidth,
height: resizeHeight,
quality: quality,
gravity: gravity
}, function(error, stdout, stderr){
if (error != null) {
console.log(error)
reject(error);
} else {
resolve(dstFilePath);
}
});
});
};
...
var resizeWidth = 600;
var resizeHeight = 200;
var quality = 1;
var gravity = 'Center';
cropGravity(srcFilePath, dstFilePath, resizeWidth, resizeHeight, …Run Code Online (Sandbox Code Playgroud)