質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Node.js

    2360questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • Express

    301questions

    ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

  • ImageMagick

    115questions

    ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Express + gm | ファイル指定のパスについて

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 82

32uta2

score 17

起きているエラー

Express と gm で画像リサイズを行おうと思っているのですが、

// $npm start 
// $curl localhost:3000
Error: Could not execute GraphicsMagick/ImageMagick: 
gm "convert" "/images/image.png" "-resize" "240x240" "+profile" "\"*\"" "/images/resize.png" 
this most likely means the gm/convert binaries can't be found

というエラーが起きてしまいます。バイナリが見つからないとあるところから、
誤ったファイルパス指定をしているように見えるのですが、
原因がわかりません、ご教授いただけると幸いです。

// routes/index.js
const express = require('express');
const router = express.Router();
const gm = require('gm');
const imagePath = '/images/image.png';   // ここのパス指定方法間違っていますか

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
    gm(imagePath )
        .resize(240, 240)
        .noProfile()
        .write('/images/resize.png', function (err) {  // ここのパス指定方法間違っていますか
            console.log(err);
    });

});

module.exports = router;
├── public
│   ├── images
│   │   └── image.png
│   ├── javascripts
│   └── stylesheets
│       └── style.css

追伸

このフォルダ構成、コードで試しに行ったのですが、動くのでexpressに依存したファイルパス指定が誤っている気はしてきました。

.
├── gm.js
├── image.jpg
└── resize.jpg
// gm.js
const fs = require('fs')
const gm = require('gm');

gm('image.jpg')
  .resize(240, 240)
  .noProfile()
  .write('resize.jpg', function (err) {
    if (!err) console.log('done');
  });
$ node gm.js
// done
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

同じタグがついた質問を見る

  • Node.js

    2360questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

  • Express

    301questions

    ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

  • ImageMagick

    115questions

    ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。