!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/invoice_pdf/node_modules/@jimp/plugin-crop/test/   drwxr-xr-x
Free 13.23 GB of 57.97 GB (22.83%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     autocrop.test.js (10.78 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import { Jimp, mkJGD } from "@jimp/test-utils";
import configure from "@jimp/custom";

import crop from "../src";
import { expectToBeJGD } from "@jimp/test-utils/src";

const jimp = configure({ plugins: [crop] }, Jimp);

describe("Autocrop", () => {
  it("image with transparent surround color", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "          ",
        "    ◆◆    ",
        "   ◆▦▦◆   ",
        "  ◆▦▦▦▦◆  ",
        "   ◆▦▦◆   ",
        "    ◆◆    ",
        "          "
      )
    );

    expectToBeJGD(
      imgSrc.autocrop().getJGDSync(),
      mkJGD("  ◆◆  ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", "  ◆◆  ")
    );
  });

  it("image with opaque surround color", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥◆◆▥▥▥▥",
        "▥▥▥◆▦▦◆▥▥▥",
        "▥▥◆▦▦▦▦◆▥▥",
        "▥▥▥◆▦▦◆▥▥▥",
        "▥▥▥▥◆◆▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥"
      )
    );

    expectToBeJGD(
      imgSrc.autocrop().getJGDSync(),
      mkJGD("▥▥◆◆▥▥", "▥◆▦▦◆▥", "◆▦▦▦▦◆", "▥◆▦▦◆▥", "▥▥◆◆▥▥")
    );
  });

  it("image with one color border", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥   ◆◆   ▥▥",
        "▥▥  ◆▦▦◆  ▥▥",
        "▥▥ ◆▦▦▦▦◆ ▥▥",
        "▥▥  ◆▦▦◆  ▥▥",
        "▥▥   ◆◆   ▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥"
      )
    );

    expectToBeJGD(
      imgSrc.autocrop().getJGDSync(),
      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"
      )
    );
    expectToBeJGD(
      imgSrc.clone().autocrop().getJGDSync(),
      mkJGD(
        "323232323232",
        "232323232323",
        "32   ◆◆   32",
        "23  ◆▦▦◆  23",
        "32 ◆▦▦▦▦◆ 32",
        "23  ◆▦▦◆  23",
        "32   ◆◆   32",
        "232323232323",
        "323232323232"
      )
    );
    expectToBeJGD(
      imgSrc.clone().autocrop(0.005).getJGDSync(),
      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"
      )
    );
    expectToBeJGD(
      imgSrc.clone().autocrop().getJGDSync(),
      mkJGD(
        "323232323232",
        "232323232323",
        "32   ◆◆   32",
        "23  ◆▦▦◆  23",
        "32 ◆▦▦▦▦◆ 32",
        "23  ◆▦▦◆  23",
        "32   ◆◆   32",
        "232323232323",
        "323232323232"
      )
    );
    expectToBeJGD(
      imgSrc.clone().autocrop({ tolerance: 0.005 }).getJGDSync(),
      mkJGD("   ◆◆   ", "  ◆▦▦◆  ", " ◆▦▦▦▦◆ ", "  ◆▦▦◆  ", "   ◆◆   ")
    );
  });

  it("image without frame", async () => {
    const imgSrc = await Jimp.read(
      mkJGD(
        "▥▥   ◆◆   ",
        "▥▥  ◆▦▦◆  ",
        "▥▥ ◆▦▦▦▦◆ ",
        "▥▥  ◆▦▦◆  ",
        "▥▥   ◆◆   ",
        "▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥"
      )
    );

    expectToBeJGD(
      imgSrc.autocrop(false).getJGDSync(),
      mkJGD("   ◆◆   ", "  ◆▦▦◆  ", " ◆▦▦▦▦◆ ", "  ◆▦▦◆  ", "   ◆◆   ")
    );
  });

  it("image without frame configured by options", async () => {
    const imgSrc = await Jimp.read(
      mkJGD(
        "▥▥   ◆◆   ",
        "▥▥  ◆▦▦◆  ",
        "▥▥ ◆▦▦▦▦◆ ",
        "▥▥  ◆▦▦◆  ",
        "▥▥   ◆◆   ",
        "▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥"
      )
    );

    expectToBeJGD(
      imgSrc.autocrop({ cropOnlyFrames: false }).getJGDSync(),
      mkJGD("   ◆◆   ", "  ◆▦▦◆  ", " ◆▦▦▦▦◆ ", "  ◆▦▦◆  ", "   ◆◆   ")
    );
  });

  it("image with symmetric border configured by options", async () => {
    const imgSrc = await Jimp.read(
      mkJGD(
        "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥   ◆◆   ▥▥▥▥",
        "▥▥  ◆▦▦◆  ▥▥▥▥",
        "▥▥ ◆▦▦▦▦◆ ▥▥▥▥",
        "▥▥  ◆▦▦◆  ▥▥▥▥",
        "▥▥   ◆◆   ▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥▥▥"
      )
    );

    expectToBeJGD(
      imgSrc.autocrop({ cropSymmetric: true }).getJGDSync(),
      mkJGD(
        "   ◆◆   ▥▥",
        "  ◆▦▦◆  ▥▥",
        " ◆▦▦▦▦◆ ▥▥",
        "  ◆▦▦◆  ▥▥",
        "   ◆◆   ▥▥",
        "▥▥▥▥▥▥▥▥▥▥"
      )
    );
  });

  it("image without frame and with symmetric border configured by options", async () => {
    const imgSrc = await Jimp.read(
      mkJGD(
        "▥▥   ◆◆   ▥▥▥▥",
        "▥▥  ◆▦▦◆  ▥▥▥▥",
        "▥▥ ◆▦▦▦▦◆ ▥▥▥▥",
        "▥▥  ◆▦▦◆  ▥▥▥▥",
        "▥▥   ◆◆   ▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥▥▥▥▥▥▥"
      )
    );
    expectToBeJGD(
      imgSrc
        .autocrop({ cropSymmetric: true, cropOnlyFrames: false })
        .getJGDSync(),
      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"
      )
    );

    expectToBeJGD(
      imgSrc
        .autocrop({
          tolerance: 0.005,
          leaveBorder: 1,
        })
        .getJGDSync(),
      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"
      )
    );
    expectToBeJGD(
      imgSrc
        .autocrop({
          tolerance: 0.005,
          leaveBorder: 100,
        })
        .getJGDSync(),
      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(
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥",
        "   ◆◆   ",
        "  ◆▦▦◆  ",
        " ◆▦▦▦▦◆ ",
        "  ◆▦▦◆  ",
        "   ◆◆   ",
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥"
      )
    );
    expectToBeJGD(
      imgSrc
        .autocrop({
          cropSymmetric: true,
          cropOnlyFrames: false,
          leaveBorder: 2,
        })
        .getJGDSync(),
      mkJGD(
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥",
        "   ◆◆   ",
        "  ◆▦▦◆  ",
        " ◆▦▦▦▦◆ ",
        "  ◆▦▦◆  ",
        "   ◆◆   ",
        "▥▥▥▥▥▥▥▥",
        "▥▥▥▥▥▥▥▥"
      )
    );
  });

  it("ignore sides north", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "          ",
        "    ◆◆    ",
        "   ◆▦▦◆   ",
        "  ◆▦▦▦▦◆  ",
        "   ◆▦▦◆   ",
        "    ◆◆    ",
        "          "
      )
    );
    expectToBeJGD(
      imgSrc
        .autocrop({ cropOnlyFrames: false, ignoreSides: { north: true } })
        .getJGDSync(),
      mkJGD("      ", "  ◆◆  ", " ◆▦▦◆ ", "◆▦▦▦▦◆", " ◆▦▦◆ ", "  ◆◆  ")
    );
  });

  it("ignore sides south and west", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "          ",
        "    ◆◆    ",
        "   ◆▦▦◆   ",
        "  ◆▦▦▦▦◆  ",
        "   ◆▦▦◆   ",
        "    ◆◆    ",
        "          "
      )
    );

    expectToBeJGD(
      imgSrc
        .autocrop({
          cropOnlyFrames: false,
          ignoreSides: { west: true, south: true },
        })
        .getJGDSync(),
      mkJGD(
        "    ◆◆  ",
        "   ◆▦▦◆ ",
        "  ◆▦▦▦▦◆",
        "   ◆▦▦◆ ",
        "    ◆◆  ",
        "        "
      )
    );
  });

  it("ignore sides east", async () => {
    const imgSrc = await jimp.read(
      mkJGD(
        "          ",
        "    ◆◆    ",
        "   ◆▦▦◆   ",
        "  ◆▦▦▦▦◆  ",
        "   ◆▦▦◆   ",
        "    ◆◆    ",
        "          "
      )
    );

    expectToBeJGD(
      imgSrc
        .autocrop({ cropOnlyFrames: false, ignoreSides: { east: true } })
        .getJGDSync(),
      mkJGD("  ◆◆    ", " ◆▦▦◆   ", "◆▦▦▦▦◆  ", " ◆▦▦◆   ", "  ◆◆    ")
    );
  });
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.088 ]--