Sharp: Globally-installed libvips: PNG: Input file is missing or of an unsupported image format

Created on 22 May 2017  路  4Comments  路  Source: lovell/sharp

Hello,

sharp does not resize images for me on CentOS 6. On my local Mac it is working properly, but on CentOS I get this error:

Error: Input file is missing or of an unsupported image format
at Error (native)

The code I am running:

sharp( 'test.png' ).resize( 100 )
      .withoutEnlargement()
      .toFile( 'test-100.png', function ( error ) {
         // here I get the error
         console.log( error );
      });

The code above is working properly on MacOS. I can confirm that paths are correct and file exists.

The CentOS environment is:

  • CentOS release 6.9 (Final)
  • libvips 8.5.5
  • NodeJS v6.10.3
  • npm 4.6.1
  • gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

Can you please advise what the problem could be, or how to debug it properly so we have additional information? Reading the error I blame some of the native libraries...

question

Most helpful comment

It looks like the global install of libvips has been compiled without support for external image formats.

https://github.com/jcupitt/libvips#building-libvips-from-a-source-tarball
https://github.com/jcupitt/libvips#optional-dependencies

(Should Centos 7 be available to you then these steps are no longer required and it'll save you a lot of time.)

All 4 comments

Hello, was libvips compiled with support for PNG images?

The following will tell you which formats sharp thinks are available via a globally-installed libvips:

console.log(sharp.format);

PNG was just an example. None of the formats works (gif, jpg, etc.).

Result of console.log( sharp.format ):

{ jpeg:
   { id: 'jpeg',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  png:
   { id: 'png',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  webp:
   { id: 'webp',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  tiff:
   { id: 'tiff',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  magick:
   { id: 'magick',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  openslide:
   { id: 'openslide',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  dz:
   { id: 'dz',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  ppm:
   { id: 'ppm',
     input: { file: true, buffer: false, stream: false },
     output: { file: true, buffer: false, stream: false } },
  fits:
   { id: 'fits',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  gif:
   { id: 'gif',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  svg:
   { id: 'svg',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  pdf:
   { id: 'pdf',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  v:
   { id: 'v',
     input: { file: false, buffer: false, stream: false },
     output: { file: false, buffer: false, stream: false } },
  raw:
   { id: 'raw',
     input: { file: false, buffer: true, stream: true },
     output: { file: false, buffer: true, stream: true } } }

It looks like the global install of libvips has been compiled without support for external image formats.

https://github.com/jcupitt/libvips#building-libvips-from-a-source-tarball
https://github.com/jcupitt/libvips#optional-dependencies

(Should Centos 7 be available to you then these steps are no longer required and it'll save you a lot of time.)

OK, just setup new VM with CentOS 7 and I confirm that sharp is working.

@lovell , many thanks for your support, and the great tool!

Was this page helpful?
0 / 5 - 0 ratings