| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356 | 
							- import { Jimp, mkJGD } from '@jimp/test-utils';
 
- import configure from '@jimp/custom';
 
- import crop from '../src';
 
- const jimp = configure({ plugins: [crop] }, Jimp);
 
- describe('Autocrop', () => {
 
-   it('image with transparent surround color', async () => {
 
-     const imgSrc = await jimp.read(
 
-       mkJGD(
 
-         '          ',
 
-         '    ◆◆    ',
 
-         '   ◆▦▦◆   ',
 
-         '  ◆▦▦▦▦◆  ',
 
-         '   ◆▦▦◆   ',
 
-         '    ◆◆    ',
 
-         '          '
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop()
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('  ◆◆  ', ' ◆▦▦◆ ', '◆▦▦▦▦◆', ' ◆▦▦◆ ', '  ◆◆  ')
 
-       );
 
-   });
 
-   it('image with opaque surround color', async () => {
 
-     const imgSrc = await jimp.read(
 
-       mkJGD(
 
-         '▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥◆◆▥▥▥▥',
 
-         '▥▥▥◆▦▦◆▥▥▥',
 
-         '▥▥◆▦▦▦▦◆▥▥',
 
-         '▥▥▥◆▦▦◆▥▥▥',
 
-         '▥▥▥▥◆◆▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop()
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('▥▥◆◆▥▥', '▥◆▦▦◆▥', '◆▦▦▦▦◆', '▥◆▦▦◆▥', '▥▥◆◆▥▥')
 
-       );
 
-   });
 
-   it('image with one color border', async () => {
 
-     const imgSrc = await jimp.read(
 
-       mkJGD(
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥   ◆◆   ▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥',
 
-         '▥▥ ◆▦▦▦▦◆ ▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥',
 
-         '▥▥   ◆◆   ▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop()
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('   ◆◆   ', '  ◆▦▦◆  ', ' ◆▦▦▦▦◆ ', '  ◆▦▦◆  ', '   ◆◆   ')
 
-       );
 
-   });
 
-   it('image border with small variation', async () => {
 
-     const imgSrc = await jimp.read(
 
-       mkJGD(
 
-         '323232323232',
 
-         '232323232323',
 
-         '32   ◆◆   32',
 
-         '23  ◆▦▦◆  23',
 
-         '32 ◆▦▦▦▦◆ 32',
 
-         '23  ◆▦▦◆  23',
 
-         '32   ◆◆   32',
 
-         '232323232323',
 
-         '323232323232'
 
-       )
 
-     );
 
-     imgSrc
 
-       .clone()
 
-       .autocrop()
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '323232323232',
 
-           '232323232323',
 
-           '32   ◆◆   32',
 
-           '23  ◆▦▦◆  23',
 
-           '32 ◆▦▦▦▦◆ 32',
 
-           '23  ◆▦▦◆  23',
 
-           '32   ◆◆   32',
 
-           '232323232323',
 
-           '323232323232'
 
-         )
 
-       );
 
-     imgSrc
 
-       .clone()
 
-       .autocrop(0.005)
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('   ◆◆   ', '  ◆▦▦◆  ', ' ◆▦▦▦▦◆ ', '  ◆▦▦◆  ', '   ◆◆   ')
 
-       );
 
-   });
 
-   it('image border with small variation configured by options', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '323232323232',
 
-         '232323232323',
 
-         '32   ◆◆   32',
 
-         '23  ◆▦▦◆  23',
 
-         '32 ◆▦▦▦▦◆ 32',
 
-         '23  ◆▦▦◆  23',
 
-         '32   ◆◆   32',
 
-         '232323232323',
 
-         '323232323232'
 
-       )
 
-     );
 
-     imgSrc
 
-       .clone()
 
-       .autocrop()
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '323232323232',
 
-           '232323232323',
 
-           '32   ◆◆   32',
 
-           '23  ◆▦▦◆  23',
 
-           '32 ◆▦▦▦▦◆ 32',
 
-           '23  ◆▦▦◆  23',
 
-           '32   ◆◆   32',
 
-           '232323232323',
 
-           '323232323232'
 
-         )
 
-       );
 
-     imgSrc
 
-       .clone()
 
-       .autocrop({ tolerance: 0.005 })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('   ◆◆   ', '  ◆▦▦◆  ', ' ◆▦▦▦▦◆ ', '  ◆▦▦◆  ', '   ◆◆   ')
 
-       );
 
-   });
 
-   it('image without frame', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '▥▥   ◆◆   ',
 
-         '▥▥  ◆▦▦◆  ',
 
-         '▥▥ ◆▦▦▦▦◆ ',
 
-         '▥▥  ◆▦▦◆  ',
 
-         '▥▥   ◆◆   ',
 
-         '▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop(false)
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('   ◆◆   ', '  ◆▦▦◆  ', ' ◆▦▦▦▦◆ ', '  ◆▦▦◆  ', '   ◆◆   ')
 
-       );
 
-   });
 
-   it('image without frame configured by options', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '▥▥   ◆◆   ',
 
-         '▥▥  ◆▦▦◆  ',
 
-         '▥▥ ◆▦▦▦▦◆ ',
 
-         '▥▥  ◆▦▦◆  ',
 
-         '▥▥   ◆◆   ',
 
-         '▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({ cropOnlyFrames: false })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD('   ◆◆   ', '  ◆▦▦◆  ', ' ◆▦▦▦▦◆ ', '  ◆▦▦◆  ', '   ◆◆   ')
 
-       );
 
-   });
 
-   it('image with symmetric border configured by options', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥   ◆◆   ▥▥▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥▥▥',
 
-         '▥▥ ◆▦▦▦▦◆ ▥▥▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥▥▥',
 
-         '▥▥   ◆◆   ▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({ cropSymmetric: true })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '   ◆◆   ▥▥',
 
-           '  ◆▦▦◆  ▥▥',
 
-           ' ◆▦▦▦▦◆ ▥▥',
 
-           '  ◆▦▦◆  ▥▥',
 
-           '   ◆◆   ▥▥',
 
-           '▥▥▥▥▥▥▥▥▥▥'
 
-         )
 
-       );
 
-   });
 
-   it('image without frame and with symmetric border configured by options', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '▥▥   ◆◆   ▥▥▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥▥▥',
 
-         '▥▥ ◆▦▦▦▦◆ ▥▥▥▥',
 
-         '▥▥  ◆▦▦◆  ▥▥▥▥',
 
-         '▥▥   ◆◆   ▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({ cropSymmetric: true, cropOnlyFrames: false })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '   ◆◆   ▥▥',
 
-           '  ◆▦▦◆  ▥▥',
 
-           ' ◆▦▦▦▦◆ ▥▥',
 
-           '  ◆▦▦◆  ▥▥',
 
-           '   ◆◆   ▥▥',
 
-           '▥▥▥▥▥▥▥▥▥▥',
 
-           '▥▥▥▥▥▥▥▥▥▥'
 
-         )
 
-       );
 
-   });
 
-   it('image without frame and with some border left', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '323232323232',
 
-         '232323232323',
 
-         '32   ◆◆   32',
 
-         '23  ◆▦▦◆  23',
 
-         '32 ◆▦▦▦▦◆ 32',
 
-         '23  ◆▦▦◆  23',
 
-         '32   ◆◆   32',
 
-         '232323232323',
 
-         '323232323232'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({
 
-         tolerance: 0.005,
 
-         leaveBorder: 1
 
-       })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '3232323232',
 
-           '2   ◆◆   3',
 
-           '3  ◆▦▦◆  2',
 
-           '2 ◆▦▦▦▦◆ 3',
 
-           '3  ◆▦▦◆  2',
 
-           '2   ◆◆   3',
 
-           '3232323232'
 
-         )
 
-       );
 
-   });
 
-   it('image not cropped given an out of bounds "leaveBorder" value ', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '323232323232',
 
-         '232323232323',
 
-         '32   ◆◆   32',
 
-         '23  ◆▦▦◆  23',
 
-         '32 ◆▦▦▦▦◆ 32',
 
-         '23  ◆▦▦◆  23',
 
-         '32   ◆◆   32',
 
-         '232323232323',
 
-         '323232323232'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({
 
-         tolerance: 0.005,
 
-         leaveBorder: 100
 
-       })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '323232323232',
 
-           '232323232323',
 
-           '32   ◆◆   32',
 
-           '23  ◆▦▦◆  23',
 
-           '32 ◆▦▦▦▦◆ 32',
 
-           '23  ◆▦▦◆  23',
 
-           '32   ◆◆   32',
 
-           '232323232323',
 
-           '323232323232'
 
-         )
 
-       );
 
-   });
 
-   it('image with top and bottom frame and leaveBorder', async () => {
 
-     const imgSrc = await Jimp.read(
 
-       mkJGD(
 
-         '▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥',
 
-         '   ◆◆   ',
 
-         '  ◆▦▦◆  ',
 
-         ' ◆▦▦▦▦◆ ',
 
-         '  ◆▦▦◆  ',
 
-         '   ◆◆   ',
 
-         '▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥',
 
-         '▥▥▥▥▥▥▥▥'
 
-       )
 
-     );
 
-     imgSrc
 
-       .autocrop({ cropSymmetric: true, cropOnlyFrames: false, leaveBorder: 2 })
 
-       .getJGDSync()
 
-       .should.be.sameJGD(
 
-         mkJGD(
 
-           '▥▥▥▥▥▥▥▥',
 
-           '▥▥▥▥▥▥▥▥',
 
-           '   ◆◆   ',
 
-           '  ◆▦▦◆  ',
 
-           ' ◆▦▦▦▦◆ ',
 
-           '  ◆▦▦◆  ',
 
-           '   ◆◆   ',
 
-           '▥▥▥▥▥▥▥▥',
 
-           '▥▥▥▥▥▥▥▥'
 
-         )
 
-       );
 
-   });
 
- });
 
 
  |