
Research
/Security News
DuckDB npm Account Compromised in Continuing Supply Chain Attack
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
The
imghdr
module determines the type of image contained in a file or octet-streams(object of Buffer), inspired by Python's imghdr module.
npm install imghdr
var imghdr = require('imghdr');
var imgPath = __dirname + '/meituan.jpg';
var ext = 'jpg';
var exts = imghdr.what(imghdr);
console.log(exts);
// => ['jpg', 'jpeg']
if (exts.indexOf(ext) === -1) {
console.log('The `' + imgPath + '`\'s extension is not a `' + ext + '`');
} else {
console.log('OK');
}
// => 'OK'
The imghdr
module defines the following function:
Tests the image data contained in the file named by
imgPath
, and returns an array of strings describing the image type.imgPath
can be a object of Buffer.
Value | Image format |
---|---|
"png" | Portable Network Graphics |
"jpeg","jpg" | JPEG data in JFIF or Exif formats |
"gif" | GIF 87a and 89a Files |
"tiff" | Tagged Image File Format |
"bmp" | BMP files |
"webp" | WebP files |
You can extend the list of file types imghdr
can recognize by appending to this variable:
A list of functions performing the individual tests. Each function takes a argument: the octet-streams(object of Buffer).The test function should return an array of strings describing the image type if the test succeeded, or
[]
if it failed.
Example:
function testCustom(buf) {
var sigBuf = new Buffer([0x6c, 0x6f, 0x76, 0x65]);
var testSigBuf = buf.slice(2, 6);
return (sigBuf.toString() == testSigBuf.toString()) ? ['custom'] : [];
}
// add to list of `tests`
imghdr.tests.push(testCustom);
var testBuf = new Buffer([0x49, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x20, 0x79, 0x6f, 0x75]);
imghdr.what(testBuf);
// => ['custom']
MIT
FAQs
Determines the type of image.
The npm package imghdr receives a total of 25 weekly downloads. As such, imghdr popularity was classified as not popular.
We found that imghdr demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.