From e06cd3d392d146a12eb95e217b955a5f2017b6fb Mon Sep 17 00:00:00 2001 From: Nicolas Van Eenaeme Date: Wed, 2 Oct 2024 00:26:35 +0200 Subject: [PATCH 1/4] :sparkles: support more filename hints than only .ico (taken from gm sourcecode) --- index.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 30d3497..24f1bc5 100644 --- a/index.js +++ b/index.js @@ -75,8 +75,11 @@ function gm (source, height, color) { var ret = inputFromStdin ? '-' : this.source; const fileNameProvied = typeof height === 'string'; - if (inputFromStdin && fileNameProvied && /\.ico$/i.test(this.source)) { - ret = `ico:-`; + if (inputFromStdin && fileNameProvied) { + const extensionMatch = this.source.match(/\.(avi|apng|avif|bmp|cgm|dcm|epdf|epi|eps2?|eps3|epsf|ept|fax|fpx|g3|gif87?|ico|jpe?g|mng|mpeg|png|pdf|ps2?|ps3|svg|tiff?|wbmp|webp)$/i); + if (extensionMatch) { + ret = `${extensionMatch[1].toLowerCase()}:-`; + } } if (ret && this.sourceFrames) ret += this.sourceFrames; From 9608ab6e4eb1d62ae3c1cf26dbc636d3c094ac82 Mon Sep 17 00:00:00 2001 From: Nicolas Van Eenaeme Date: Wed, 2 Oct 2024 00:26:56 +0200 Subject: [PATCH 2/4] :white_check_mark: fixed test suite --- test/resizeAndAutoOrientFromBuffer.js | 2 +- test/resizeBuffer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/resizeAndAutoOrientFromBuffer.js b/test/resizeAndAutoOrientFromBuffer.js index c388d12..ab58744 100755 --- a/test/resizeAndAutoOrientFromBuffer.js +++ b/test/resizeAndAutoOrientFromBuffer.js @@ -9,7 +9,7 @@ module.exports = function (_, dir, finish, gm, imageMagick) { var buf = fs.readFileSync(original); - var m = gm(buf, 'resizefrombuffer.jpg') + var m = gm(buf) .options({imageMagick}) .autoOrient() .resize('20%') diff --git a/test/resizeBuffer.js b/test/resizeBuffer.js index e021daf..3e62526 100755 --- a/test/resizeBuffer.js +++ b/test/resizeBuffer.js @@ -15,7 +15,7 @@ module.exports = function (_, dir, finish, gm, imageMagick) { var args = m.args(); assert.equal('convert', args[0]); - assert.equal('-', args[1]); + assert.equal('jpg:-', args[1]); assert.equal('-resize', args[2]); if (m._options.imageMagick) { assert.equal('48%', args[3]); From c11a96760af845c5ae23f4ad2926750b621630c1 Mon Sep 17 00:00:00 2001 From: Nicolas Van Eenaeme Date: Wed, 2 Oct 2024 00:27:34 +0200 Subject: [PATCH 3/4] :white_check_mark: added testcase for corrupted pdf (parses correctly thanks to filename hint) --- test/fixtures/test.pdf | Bin 0 -> 3914 bytes test/pdf.js | 15 +++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 test/fixtures/test.pdf create mode 100644 test/pdf.js diff --git a/test/fixtures/test.pdf b/test/fixtures/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..982f6eab1e714df5645db1e21f96f978b8ee8c45 GIT binary patch literal 3914 zcmcInYiu0V6*k~DiD6tIKR}|W7YEl4*gJP-c6N5C6S7`E5)wb~Zb%>mJiB|np0GRP z%-n5k(i+q!Ptl@a5)mojNRc1{0YZcn6(>BzD-j?f2*{!qk4l9Een6$Fv{BEw`|x^q zNgJWgtak3>oO91T=X~d$+p#6*+_JKHu&bwC38+%@$Dh3QuGF9rO5DU2siT8P@;cjL zmS^9}Qbd970MX%pHQ7Xr5G9Ikkj+R$G?Rv*(M`0Fj*Wgn9VeQh0o%%zL}E?~g_7_2 zjC*WE(qLsG(ZZvIh-eW#zl(h;dU~RE|O961m6DaOS}`V{z8S zl7e>~bJBd2VEBLn7|TBQn3a_pR^OQz9-d>v!~Z;7SHJtBi=RBJv9-PK<=Md_hvr^A z^r(99K>Nl6f8F=`^sdHL7u;TVPThf-Mb97-3IYn45R!5Cx>mvoZmhx}xErx4k2$<# zjv?l|IWGwY!tJ0Zqprh&!Y3HCVx*6yY^&292ZP~INKuJlssg%E&mF5hGvsnG0+5%( zx6EWB3ux_CpA_}INygB9Wao!sf zt07ZwOhJ5?W}|M#^E2Oe$unYxa)y!B7PE$7dA1O zMXj;b%ubJTV3cH}!?|`90z<+ONc%(!ViTlv=8e>@1H#)iY7mvGVX!c?Fw&5u-^xOy z#qBKf``NZ3H)}aCvj(ErPDY$`M%Yr0ahAOf7cA2pO;kg3;Ev@IT%aND<(R+)tYv#X zkB(X%(GZ{Otn%IlJHX2cS0AwT3M((w;Sqqg5sPHINUo>T( z#XVbuY9Od!E)J-Q3UL>piU~0j&~yWP2BaNOBA_S`$?yroNq(1Q66?^u3je$3h>9_2?bj#DT z`_4T!5qad~`Q57z>bG5g>eG#FKc3q4>^ob|`QnXV<{`0(}}liyAsKl$n6 znNG9q@?(E9a-Y<1+kfR?^9>&~9-Vyu?@NEU|Fb7rZoA}(k5BzlfAPr0XFvGBYexdJ z%Z^>LbXC*RYnu*!aOgnOuX`G|kA8mB`kib4F?`;#pS^Nj%NHT3<#*4{Uj5kc)hl-2 z{rvXh@9nYQKD?{x==7!UZM|<%-!G6TB-yWR!^2Kka9=z#ai)r1zpSo{HLv>EXbEyU< zYN6Q#*PjN>2=xM*5ijLv4grSSHHasb0@4*43|F8z;@MWFt<%k8JI_`OcLMqs;8aJb4l~e0wiz@pp7fvPzb?}Z{>WM07`Tnj{^Kh zvV1SkGOtS*K##LUK_CDLH82*T(fU~L>4`;3Na2A0C3fD&R z!b4eCFH|6uB4otM_*jy~`taz%bO7=Uax0>ug(*C}_KzZ^0fRGV17wD#FR?zH Date: Wed, 2 Oct 2024 00:46:23 +0200 Subject: [PATCH 4/4] :recycle: changed pdf test since %p returns a 0-based index on imagemagick and a 1-based index on graphicsmagick (so it seems) --- test/pdf.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/pdf.js b/test/pdf.js index 8978506..a2c84ec 100644 --- a/test/pdf.js +++ b/test/pdf.js @@ -7,9 +7,9 @@ module.exports = function (_, dir, finish, gm, imageMagick) { var imagePath = path.join(__dirname, 'fixtures', 'test.pdf'); var inputStream = fs.createReadStream(imagePath); - gm(inputStream, 'test.pdf').options({ imageMagick }).identify('%p', function(err, value) { + gm(inputStream, 'test.pdf').options({ imageMagick }).identify('%w %h', function(err, value) { if (err) return finish(err); - assert.equal(value, '1'); + assert.equal(value, '612 792'); finish(); }); }