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:
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...
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!
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.)