标签: sharp

使用AWS Lambda编译本机代码(npm install)的软件包

我需要使用sharp包来调整Lambda函数中的图像大小,但它在我的Windows机器上执行"npm install"时会构建本机代码,这肯定不适用于托管Lambda的Amazon Linux服务器.

使用无服务器时,建议的解决方法是什么?

lambda aws-lambda serverless-framework serverless-architecture sharp

3
推荐指数
1
解决办法
873
查看次数

使用node.js和Sharp包将非裁剪调整为png

我正在尝试使用 Nodejs Sharp 包调整图像大小/转换为 png,而不进行裁剪。根据文档,它是 .max() 方法,遗憾的是,在调整大小为 png 时,该方法不起作用(图像被裁剪)。有什么解决方法吗?

png image-resizing node.js sharp

3
推荐指数
1
解决办法
2866
查看次数

如何使用sharp包压缩PNG文件?

我正在尝试使用 node.js 锐利包压缩 PNG 文件(1MB 以上)。

var sharp = require('/usr/local/lib/node_modules/sharp');
sharp('IMG1.png')
.png({ compressionLevel: 9, adaptiveFiltering: true, force: true })
.withMetadata()
.toFile('IMG2.png', function(err){
    if(err){
        console.log(err);
    } else {
        console.log('done');
    }
}); 
Run Code Online (Sandbox Code Playgroud)

上面的代码不能正常工作。我有一个大约 3.5MB 的文件大小,我试图将它压缩到 1MB 左右。

image-processing node.js npm sharp

3
推荐指数
1
解决办法
4708
查看次数

使用 Sharp 库运行 AWS Lambda 函数时出现问题

我按照 AWS 研讨会 ( https://amplify-workshop.go-aws.com/70_generate_thumbnails/10_creating_a_photo_processor_lambda.html ),通过 aws-amplify CLI 创建了一个 lambda 函数。似乎某个地方的 Node.js 版本存在冲突。

我认为 Sharp 库是问题所在,因此我尝试将版本更改为最新版本,看看是否会起到任何作用,但它没有解决问题。

云观察错误日志:

module initialization error: Error
was compiled against a different Node.js version using
NODE_MODULE_VERSION 67. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (module.js:681:18)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/node_modules/sharp/lib/constructor.js:10:15)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10) …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda sharp aws-amplify

3
推荐指数
1
解决办法
5381
查看次数

在 webpack 中使用 node-loader 安装“sharp”模块时出现问题

我使用sharpand webpackwithnode-loader但出现此错误:

\n
D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:150011\n  throw new Error(error);\n  ^\n\nError:\nSomething went wrong installing the "sharp" module\n\nnode-loader:\nError: The specified module could not be found.\nD:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server/33c1e48f049ce3285905e286d212a201.node\n\n- Remove the "node_modules/sharp" directory then run\n  "npm install --ignore-scripts=false --verbose" and look for errors\n- Consult the installation documentation at https://sharp.pixelplumbing.com/install\n- Search for this error at https://github.com/lovell/sharp/issues\n\n    at Object.EmBj (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:150011:9)\n    at __webpack_require__ (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:27:30)\n    at Object.Tbcg (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:251632:15)\n    at __webpack_require__ (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:27:30)\n    at Module.dMKD (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:324313:63)\n    at __webpack_require__ (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:27:30)\n    at Module.mWHM (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:405859:77)\n    at __webpack_require__ (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:27:30)\n    at Module.WXK/ (D:\\Downloads\\__projects\\dev\\NodeJs\\@eng-dibo\\ngx\\dist\\cms\\core\\server\\express.js:271250:65)\n    at …
Run Code Online (Sandbox Code Playgroud)

node.js node-modules webpack sharp

3
推荐指数
1
解决办法
1万
查看次数

我可以在 React js 中使用 Sharp 图像处理库吗?

我尝试在我的创建反应应用程序中使用夏普图像处理。但它发送了一个错误\n在此输入图像描述

\n

这是我的代码:

\n
import sharp from \'sharp\';\n\nconst buffer = await sharp(req.file.buffer)\n          .resize({ width: 250, height: 250 })\n          .extend({\n            top: 10,\n            bottom: 10,\n            left: 10,\n            right: 10,\n            background:  \'#d7d8de\'\n          })\n          .png()\n
Run Code Online (Sandbox Code Playgroud)\n

编辑: I\xe2\x80\x99m 使用 Node.js 版本 12.18.0

\n

javascript image node.js reactjs sharp

3
推荐指数
1
解决办法
8310
查看次数

Sharp JS 依赖性破坏了 Elastic Beanstalk 上的 Express Server

我觉得这毫无用处,因为我的难题已在多个不同的线程中讨论过,但没有任何效果。

我有一个 ExpressJS/节点服务器部署到 AWS Elastic Beanstalk。当我几周前第一次尝试部署时,我无法让它运行,直到我最终意识到我的许多依赖项之一(一个名为 Sharp 的令人惊叹的图像调整工具)正在破坏它。我卸载了它并删除了它在服务器中的使用。一切都很好。但我确实需要它——当我在本地设备上运行服务器时,它工作得很好。

但是当我重新安装并部署时,出现以下错误:

npm ERR! path /var/app/staging/node_modules/sharp
npm ERR! command failed
npm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)
npm ERR! sharp: Are you trying to install as a root or sudo user? Try again with the --unsafe-perm flag
npm ERR! sharp: Please see https://sharp.pixelplumbing.com/install for required dependencies
npm ERR! sharp: Installation error: EACCES: permission denied, mkdir '/root/.npm'
Run Code Online (Sandbox Code Playgroud)

网上的大多数答案都是在名为 .npmrc 的文件中设置 …

node.js express amazon-elastic-beanstalk sharp

3
推荐指数
1
解决办法
1520
查看次数

Sharp 在 AWS Amplify 后端 Lambda 上导致构建失败

我对 aws amplify 还很陌生,并且有一个 amplify 应用程序,它有一个后端 lambda 函数,该函数使用Sharp作为依赖项。当我推送 git 来触发部署时,我的构建失败了,我认为是由于vips/vips8没有找到尖锐的依赖关系。

相关日志

2022-05-31T18:26:18.714Z [INFO]: [0mError: Packaging lambda function failed with the error [0m
                                 [0mCommand failed with exit code 1: npm install --no-bin-links --production[0m
                                 [0msh: prebuild-install: command not found[0m
                                 [0m../src/common.cc:24:10: fatal error: vips/vips8:  [0m
                                 [0m #include <vips/vips8>[0m
                                 [0m          ^~~~~~~~~~~~[0m
                                 [0mcompilation terminated.[0m
                                 [0mmake: *** [Release/obj.target/sharp-linux-x64/src/common.o] Error 1[0m
                                 [0mgyp ERR! build error [0m
                                 [0mgyp ERR! stack Error: `make` failed with exit code: 2[0m
                                 [0mgyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v14.19.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)[0m
                                 [0mgyp …
Run Code Online (Sandbox Code Playgroud)

node.js aws-lambda sharp aws-amplify

3
推荐指数
1
解决办法
2402
查看次数

Nodejs 如何处理相对路径?

我有一个关于 Nodejs 路径处理的问题。我知道他们在文档中有一个关于此内容的页面,但它不包含我需要的内容。

基本上,我有一个文件,其中包含引用文件的相对路径(在本例中为 png)。

现在,根据我调用文件的位置,图片要么找到,要么找不到(因为文件系统中被调用的点发生变化)。

我使用的是 'sharp' 框架,'sharp('./picture.png')' 与 require 类似。

Example:

File 'render.js' :
const pic = sharp('./picture.png')

Calling:

cmd\examplePath> node render.js //picture is found

cmd> node ./examplePath/render.js //picture is not found

Run Code Online (Sandbox Code Playgroud)
The location of the picture relative to the file stays the same at all times!
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我所描述的内容是否符合 Nodejs 的预期,或者是否有问题。我需要做什么才能从任何地方调用该文件并使其仍然有效?

任何提示表示赞赏。谢谢 :)

javascript node.js sharp

3
推荐指数
1
解决办法
2506
查看次数

使用 Sharp Node.js 保留旋转元数据

我正在开发一个使用Sharp处理照片的应用程序。目前,当我们调整大小,然后使用锐调整大小和 toBuffer 写入缓冲图像时,默认情况下,两者都会擦除 EXIF 数据。我们想要删除除方向之外的所有元数据(如果存在)。

我已经阅读了 Sharp 的文档,withMetadata 似乎是实现我想要的目标的候选者,问题是 withMetadata 保留了所有元数据,而我只想要原始图像的方向。

原来的代码行是

await this.sharpInstance.resize(maxDimension, maxDimension).max().toBuffer()

我想我想要的是这样的

await this.sharpInstance.withMetadata().resize(maxDimension, maxDimension).max().withMetadata().toBuffer()

但仅适用于方向元数据。

我真的很感激一些帮助来解决这个问题。非常感谢!

javascript sharp

2
推荐指数
2
解决办法
4908
查看次数