{"id":23282118,"url":"https://github.com/bitpatty/imgproxy-url-builder","last_synced_at":"2025-10-26T01:05:58.516Z","repository":{"id":36962994,"uuid":"423024981","full_name":"BitPatty/imgproxy-url-builder","owner":"BitPatty","description":"A TypeScript helper library for building imgproxy URLs","archived":false,"fork":false,"pushed_at":"2025-09-01T14:03:31.000Z","size":5192,"stargazers_count":40,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T00:32:38.272Z","etag":null,"topics":["imgproxy"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BitPatty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-31T01:14:46.000Z","updated_at":"2025-10-02T00:12:37.000Z","dependencies_parsed_at":"2023-10-02T08:54:13.570Z","dependency_job_id":"2758dbb3-742a-4d21-9825-624ecdb3f96e","html_url":"https://github.com/BitPatty/imgproxy-url-builder","commit_stats":{"total_commits":983,"total_committers":4,"mean_commits":245.75,"dds":"0.16887080366225837","last_synced_commit":"8399f6e67b51c1add25925e670926e66a1e7f2d3"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"purl":"pkg:github/BitPatty/imgproxy-url-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Fimgproxy-url-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Fimgproxy-url-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Fimgproxy-url-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Fimgproxy-url-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BitPatty","download_url":"https://codeload.github.com/BitPatty/imgproxy-url-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Fimgproxy-url-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281043854,"owners_count":26434533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["imgproxy"],"created_at":"2024-12-20T00:14:40.864Z","updated_at":"2025-10-26T01:05:58.482Z","avatar_url":"https://github.com/BitPatty.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/BitPatty/imgproxy-url-builder/build.yml?label=Build\u0026style=flat-square)\n[![Coverage Status](https://img.shields.io/coverallsCoverage/github/BitPatty/imgproxy-url-builder?label=Coverage\u0026style=flat-square)](https://coveralls.io/github/BitPatty/imgproxy-url-builder?branch=master)\n![npm](https://img.shields.io/npm/dm/@bitpatty/imgproxy-url-builder?label=Downloads\u0026style=flat-square)\n\n# imgproxy-url-builder\n\nA TypeScript helper library for building [imgproxy](https://github.com/imgproxy/imgproxy) URLs.\n\n## Installation\n\n```sh\nnpm i --save @bitpatty/imgproxy-url-builder\n```\n\n## Usage\n\nYou can import the param builder and chain your transformations. For a list of available transformations check the sections below.\n\n```typescript\nimport pb from '@bitpatty/imgproxy-url-builder';\n\n// Just the transformer params\n// Returns rot:90/bl:10\npb().rotate(90).blur(10).build();\n\n// The transformer params with the target image\n// Returns /-/rot:90/bl:10/czM6Ly9teWJ1Y2tldC9teWltYWdlLnBuZw\npb().rotate(90).blur(10).build({\n  path: 's3://mybucket/myimage.png',\n});\n\n// You can disable path encoding by setting 'plain' to true\n// Returns /-/rot:90/bl:10/plain/s3://mybucket/myimage.png\npb().rotate(90).blur(10).build({\n  plain: true,\n  path: 's3://mybucket/myimage.png',\n});\n\n// To sign your URL provide the key and salt\n// The path is required to sign your URL!\n// Returns /TXf2QXtZkU-ULvrg0pLDqJlWUb7XdHkXD0h6NFWD-mo/rot:90/bl:10/czM6Ly9teWJ1Y2tldC9teWltYWdlLnBuZw\npb()\n  .rotate(90)\n  .blur(10)\n  .build({\n    path: 's3://mybucket/myimage.png',\n    signature: {\n      key: 'a91bdcda48ce22cd7d8d3a0eda93',\n      salt: 'a91bdcda48ce22cd7d8d3a0eda93',\n      size: 32, // Optional, specify the signature size. Defaults to 32\n    },\n  });\n\n// To automatically prepend the imgproxy URL\n// provide it as the 'baseUrl' setting\n// Returns https://my-imgproxy-instance.example.com/-/rot:90/bl:10/czM6Ly9teWJ1Y2tldC9teWltYWdlLnBuZw\npb().rotate(90).blur(10).build({\n  path: 's3://mybucket/myimage.png',\n  baseUrl: 'https://my-imgproxy-instance.example.com',\n});\n\n// You can clone the current configuration for templating / reuse\nconst template = pb().rotate(90);\nconst copy = template.clone();\n\n// To remove a modifier, use the `unset` function\nconst t = pb().rotate(90).blur(10);\nt.unset('rotate');\n\n// ... Or you can replace the previous setting by calling the\n// modifier again\nconst t = pb().rotate(90).blur(10); // rotate: 90, blur: 10\nt.rotate(34); // rotate: 34, blur: 10\n```\n\n## Chaining Pipelines\n\nPipelines [can be chained](https://github.com/imgproxy/imgproxy/blob/41b9ebe9277ef3e664e0a842fbc0e912b2640969/docs/chained_pipelines.md) using the chain utility function:\n\n```typescript\nimport pb, { chain } from '@bitpatty/imgproxy-url-builder';\n\n// Returns bl:10/rot:90/-/bl:10/rot:270\nchain([pb().blur(10).rotate(90), pb().blur(10).rotate(270)]);\n\n// Returns /8q2Ey2URdWizZb8PgAUKMO6C2tD4aXOa2IbCMV9pTKA/bl:10/-/ar:true/dGVzdC5wbmc\nchain({\n  buildOptions: {\n    path: 'test.png',\n    signature: {\n      key: '73757065722d7365637265742d6b6579', // super-secret-key\n      salt: '73757065722d7365637265742d73616c74', // super-secret-salt\n    },\n  },\n  builders: [pb().blur(10), pb().autoRotate()],\n});\n```\n\n## License\n\nPublished under the [MIT License](https://github.com/BitPatty/imgproxy-url-builder/blob/master/LICENSE).\n\n## Modifiers\n\n- [adjust](#adjust-imgproxy-docs)\n- [autoRotate](#autorotate-imgproxy-docs)\n- [background](#background-imgproxy-docs)\n- [backgroundAlpha](#backgroundalpha-imgproxy-docs)\n- [blur](#blur-imgproxy-docs)\n- [blurDetections](#blurdetections-imgproxy-docs)\n- [brightness](#brightness-imgproxy-docs)\n- [cacheBuster](#cachebuster-imgproxy-docs)\n- [contrast](#contrast-imgproxy-docs)\n- [crop](#crop-imgproxy-docs)\n- [disableAnimation](#disableanimation-imgproxy-docs)\n- [dpi](#dpi-imgproxy-docs)\n- [dpr](#dpr-imgproxy-docs)\n- [drawDetections](#drawdetections-imgproxy-docs)\n- [duotone](#duotone-imgproxy-docs)\n- [enforceThumbnail](#enforcethumbnail-imgproxy-docs)\n- [enlarge](#enlarge-imgproxy-docs)\n- [expires](#expires-imgproxy-docs)\n- [extend](#extend-imgproxy-docs)\n- [extendAspectRatio](#extendaspectratio-imgproxy-docs)\n- [fallbackImageUrl](#fallbackimageurl-imgproxy-docs)\n- [fileName](#filename-imgproxy-docs)\n- [format](#format-imgproxy-docs)\n- [formatQuality](#formatquality-imgproxy-docs)\n- [gradient](#gradient-imgproxy-docs)\n- [gravity](#gravity-imgproxy-docs)\n- [hashsum](#hashsum-imgproxy-docs)\n- [jpegOptions](#jpegoptions-imgproxy-docs)\n- [keepCopyright](#keepcopyright-imgproxy-docs)\n- [maxBytes](#maxbytes-imgproxy-docs)\n- [minHeight](#minheight-imgproxy-docs)\n- [minWidth](#minwidth-imgproxy-docs)\n- [monochrome](#monochrome-imgproxy-docs)\n- [pad](#pad-imgproxy-docs)\n- [page](#page-imgproxy-docs)\n- [pixelate](#pixelate-imgproxy-docs)\n- [pngOptions](#pngoptions-imgproxy-docs)\n- [preset](#preset-imgproxy-docs)\n- [quality](#quality-imgproxy-docs)\n- [raw](#raw-imgproxy-docs)\n- [resize](#resize-imgproxy-docs)\n- [resizingAlgorithm](#resizingalgorithm-imgproxy-docs)\n- [returnAttachment](#returnattachment-imgproxy-docs)\n- [rotate](#rotate-imgproxy-docs)\n- [saturation](#saturation-imgproxy-docs)\n- [sharpen](#sharpen-imgproxy-docs)\n- [skipProcessing](#skipprocessing-imgproxy-docs)\n- [stripColorProfile](#stripcolorprofile-imgproxy-docs)\n- [stripMetadata](#stripmetadata-imgproxy-docs)\n- [style](#style-imgproxy-docs)\n- [trim](#trim-imgproxy-docs)\n- [unsharpen](#unsharpen-imgproxy-docs)\n- [videoThumbnailKeyframes](#videothumbnailkeyframes-imgproxy-docs)\n- [videoThumbnailSecond](#videothumbnailsecond-imgproxy-docs)\n- [videoThumbnailTile](#videothumbnailtile-imgproxy-docs)\n- [watermark](#watermark-imgproxy-docs)\n- [watermarkShadow](#watermarkshadow-imgproxy-docs)\n- [watermarkSize](#watermarksize-imgproxy-docs)\n- [watermarkText](#watermarktext-imgproxy-docs)\n- [watermarkUrl](#watermarkurl-imgproxy-docs)\n- [zoom](#zoom-imgproxy-docs)\n\n### adjust ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#adjust-idadjust))\n\nDefines the brightness, contrast, and saturation.\n\n#### Example\n\n```typescript\npb().adjust({\n  brightness: 100,  // optional\n  contrast: 0.8,    // optional\n  saturation: 0.9   // optional\n});\n```\n\n### autoRotate ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#auto-rotate))\n\nAutomatically rotates the image based on the EXIF orientation parameter.\n\n#### Example\n\n```typescript\npb().autoRotate();\n```\n\n### background ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#background))\n\nFills the image background with the specified color.\n\n#### Example\n\n```typescript\npb().background('ff0000');\n\npb().background({\n  r: 255,\n  g: 0,\n  b: 0\n});\n```\n\n### backgroundAlpha ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#background-alpha-idbackground-alpha))\n\nAdds alpha channel to background.\n\n#### Example\n\n```typescript\npb().backgroundAlpha(0.4);\n```\n\n### blur ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#blur))\n\nApplies a gaussian blur filter to the image.\n\n#### Example\n\n```typescript\npb().blur(10);\n```\n\n### blurDetections ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#blur-detections-idblur-detections))\n\nDetects objects of the provided classes and blurs them.\n\n#### Example\n\n```typescript\npb().blurDetections({\n  sigma: 10,\n  classNames: ['face']\n});\n```\n\n### brightness ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#brightness-idbrightness))\n\nAdjusts the brightness of an image.\n\n#### Example\n\n```typescript\npb().brightness(-100);\n```\n\n### cacheBuster ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#cache-buster))\n\nAdds a cache buster to the imgproxy params.\n\n#### Example\n\n```typescript\npb().cacheBuster(\"abcdef123\");\n```\n\n### contrast ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#contrast-idcontrast))\n\nAdjust contrast of the resulting image.\n\n#### Example\n\n```typescript\npb().contrast(0.3);\n```\n\n### crop ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#crop))\n\nCrops the image.\n\n#### Example\n\n```typescript\npb().crop({\n  width: 100,                  // optional\n  height: 50,                  // optional\n  gravity: {                   // optional\n    type: GravityType.CENTER,  // required\n    offset: {                  // optional\n       x: 20,                  // required\n       y: 20                   // required\n    }\n  }\n})\n```\n\n### disableAnimation ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/cfa4b596d1f31656f9116cc16f2a4ff7d15c2837/docs/generating_the_url.md#disable-animation-iddisable-animation))\n\nUse a single frame of animated images.\n\n#### Example\n\n```typescript\npb().disableAnimation();\n```\n\n### dpi ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/8629c5eca1e422908363f471513bfc887d778a85/docs/generating_the_url.md#dpi-iddpi))\n\nWhen set, imgproxy will replace the image's DPI metadata with the provided value.\n\n#### Example\n\n```typescript\npb().dpi(300);\n```\n\n### dpr ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#dpr))\n\nMultiplies the dimensions according to the specified factor.\n\n#### Example\n\n```typescript\npb().dpr(18);\n```\n\n### drawDetections ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#draw-detections-iddraw-detections))\n\nDetects objects of the provided classes and draws their bounding boxes.\n\n#### Example\n\n```typescript\npb().drawDetections({\n  classNames: [\"face\"]\n});\n```\n\n### duotone ([imgproxy docs](https://github.com/imgproxy/imgproxy-docs/blob/7d15484aea6a1fae5f1dfd1806b5551a4774658d/docs/usage/processing.mdx?plain=1#L429))\n\nConverts the image to duotone with specified intensity and colors.\n\n#### Example\n\n```typescript\npb().duotone({\n  intensity: 1.0,   // required\n  color1: 'ff0000', // required\n  color2: '00ff00'  // required\n});\n```\n\n### enforceThumbnail ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#enforce-thumbnail))\n\nIf the source image has an embedded thumbnail, imgproxy will use the embedded thumbnail instead of the main image.\n\n#### Example\n\n```typescript\npb().enforceThumbnail();\n```\n\n### enlarge ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#enlarge))\n\nEnlarges the image if it is smaller than the given size.\n\n#### Example\n\n```typescript\npb().enlarge();\n```\n\n### expires ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#expires))\n\nReturns a 404 if the expiration date is reached.\n\n#### Example\n\n```typescript\npb().expires(new Date());\n\npb().expires(1661431326);\n```\n\n### extend ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#extend))\n\nExtends the image if it is smaller than the given size.\n\n#### Example\n\n```typescript\npb().extend();\n\npb().extend({\n  gravity: {\n    type: GravityType.NORTH  // required\n    offset: {                // optional\n      x: 10;                 // required\n      y: 20;                 // required\n    }\n  }\n});\n```\n\n### extendAspectRatio ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/1a9768a2c682e88820064aa3d9a05ea234ff3cc4/docs/generating_the_url.md#extend-aspect-ratio))\n\nExtends the image to the requested aspect ratio.\n\n#### Example\n\n```typescript\npb().extendAspectRatio();\n\npb().extendAspectRatio({\n  gravity: {\n    type: GravityType.NORTH  // required\n    offset: {                // optional\n      x: 10;                 // required\n      y: 20;                 // required\n    }\n  }\n});\n```\n\n### fallbackImageUrl ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#fallback-image-url-idfallback-image-url))\n\nSets a custom fallback image by specifying its URL.\n\n#### Example\n\n```typescript\npb().fallbackImageUrl('https://example.com');\n```\n\n### fileName ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/41b9ebe9277ef3e664e0a842fbc0e912b2640969/docs/generating_the_url.md#filename))\n\nSets the filename for the Content-Disposition header.\n\n#### Example\n\n```typescript\n// Not encoded\npb().fileName('filename.png');\n\n// Encoded\npb().fileName('ZmlsZW5hbWUucG5n', true);\n```\n\n### format ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#format))\n\nSpecifies the resulting image format.\n\n#### Example\n\n```typescript\npb().format('png');\n```\n\n### formatQuality ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#format-quality))\n\nSets the desired quality for each format.\n\n#### Example\n\n```typescript\npb().formatQuality({\n  jpeg: 100,\n  png: 50,\n  // ...\n});\n```\n\n### gradient ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/cfa4b596d1f31656f9116cc16f2a4ff7d15c2837/docs/generating_the_url.md#gradient-idgradient))\n\nPlaces a gradient on the processed image.\n\n#### Example\n\n```typescript\npb().gradient({\n  opacity: 1,       // required\n  color: 'ababab',  // optional\n  direction: 'up',  // optional\n  start: 0.0,       // optional\n  stop: 0.7         // optional\n});\n```\n\n### gravity ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#gravity))\n\nSets the gravity.\n\n#### Example\n\n```typescript\npb().gravity({\n  type: GravityType.NORTH  // required\n  offset: {                // optional\n    x: 10,                 // required\n    y: 20                  // required\n  }\n});\n```\n\n### hashsum ([imgproxy docs](https://github.com/imgproxy/imgproxy-docs/blob/f9d7908d253ec2b31425b988a48f8c28cb271c58/docs/usage/processing.mdx#L916))\n\nWhen `hashsum_type` is not `none`, imgproxy will calculate the hashsum of the source image and compare it with the provided hashsum.\n\n#### Example\n\n```typescript\npb().hashsum({\n  hashsum: 'ABCDEF',       // required\n  type: HashsumType.NONE   // optional\n});\n```\n\n### jpegOptions ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#jpeg-options-idjpeg-options))\n\nAllows redefining JPEG saving options.\n\n#### Example\n\n```typescript\npb().jpegOptions({\n  progressive: boolean,         // optional\n  noSubsample: boolean,         // optional\n  trellisQuant: boolean,        // optional\n  overshootDeringing: boolean,  // optional\n  optimizeScans: boolean,       // optional\n  quantizationTable: 7          // optional\n});\n```\n\n### keepCopyright ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#keep-copyright))\n\nPreserve the copyright info while stripping metadata.\n\n#### Example\n\n```typescript\npb().keepCopyright();\n```\n\n### maxBytes ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#max-bytes))\n\nLimits the file size to the specified number of bytes.\n\n#### Example\n\n```typescript\npb().maxBytes(10);\n```\n\n### minHeight ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#min-height))\n\nDefines the minimum height of the resulting image.\n\n#### Example\n\n```typescript\npb().minHeight(100);\n```\n\n### minWidth ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#min-width))\n\nDefines the minimum width of the resulting image.\n\n#### Example\n\n```typescript\npb().minWidth(100);\n```\n\n### monochrome ([imgproxy docs](https://github.com/imgproxy/imgproxy-docs/blob/7d15484aea6a1fae5f1dfd1806b5551a4774658d/docs/usage/processing.mdx?plain=1#L415))\n\nConverts the image to monochrome.\n\n#### Example\n\n```typescript\npb().monochrome({\n  intensity: 0.3,  // required\n  color: 'ff0000'  // optional\n});\n```\n\n### pad ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#padding))\n\nApplies the specified padding to the image.\n\n#### Example\n\n```typescript\npb().pad({\n  top: 100,    // optional (Note: sets all other sides if not set explicitly)\n  right: 100,  // optional\n  bottom: 10,  // optional\n  left: 10     // optional\n});\n```\n\n### page ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#page-idpage))\n\nWhen source image supports pagination (PDF, TIFF) or animation (GIF, WebP), this option allows specifying the page to use.\n\n#### Example\n\n```typescript\npb().page(10);\n```\n\n### pixelate ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#pixelate))\n\nApply the pixelate filter to the resulting image.\n\n#### Example\n\n```typescript\npb().pixelate(5);\n```\n\n### pngOptions ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#png-options-idpng-options))\n\nAllows redefining PNG saving options.\n\n#### Example\n\n```typescript\npb().pngOptions({\n  interlaced: true,         // optional\n  quantize: false,          // optional\n  quantization_colors: 10   // optional\n});\n```\n\n### preset ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#preset))\n\nSets one or many presets to be used by the imgproxy.\n\n#### Example\n\n```typescript\npb().preset('mypreset');\n\npb().preset(['preset1', 'preset2']);\n```\n\n### quality ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#quality))\n\nRedefines the quality of the resulting image.\n\n#### Example\n\n```typescript\npb().quality(80);\n```\n\n### raw ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/f95f57bb4df35c69ae2257958006ef54b1c1d8c7/docs/generating_the_url.md#raw))\n\nReturns a raw unprocessed and unchecked source image\n\n#### Example\n\n```typescript\npb().raw();\n```\n\n### resize ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#resize))\n\nResizes the image.\n\n#### Example\n\n```typescript\npb().resize({\n  type: ResizeType.AUTO,  // optional\n  width: 100,             // optional\n  height: 50              // optional\n});\n```\n\n### resizingAlgorithm ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#resizing-algorithm-idresizing-algorithm))\n\nDefines the algorithm that imgproxy will use for resizing.\n\n#### Example\n\n```typescript\npb().resizingAlgorithm(ResizingAlgorithm.NEAREST));\n```\n\n### returnAttachment ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#return-attachment))\n\nReturns attachment in the Content-Disposition header.\n\n#### Example\n\n```typescript\npb().returnAttachment();\n```\n\n### rotate ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#rotate))\n\nRotates the image by the specified angle.\n\n#### Example\n\n```typescript\npb().rotate(90);\n```\n\n### saturation ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#saturation-idsaturation))\n\nAdjust saturation of the resulting image.\n\n#### Example\n\n```typescript\npb().saturation(0.3);\n```\n\n### sharpen ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#sharpen))\n\nApplies a sharpen filter to the image.\n\n#### Example\n\n```typescript\npb().sharpen(3);\n```\n\n### skipProcessing ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#skip-processing))\n\nSkip the processing of the listed formats.\n\n#### Example\n\n```typescript\npb().skipProcessing(['png', 'svg']);\n```\n\n### stripColorProfile ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#strip-color-profile))\n\nStrips the color profile from the image.\n\n#### Example\n\n```typescript\npb().stripColorProfile();\n```\n\n### stripMetadata ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#strip-metadata))\n\nStrips the metadata from the image.\n\n#### Example\n\n```typescript\npb().stripMetadata();\n```\n\n### style ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#style-idstyle))\n\nPrepend a `\u003cstyle\u003e` node with the provided CSS styles to the `\u003csvg\u003e` node of a source SVG image.\n\n#### Example\n\n```typescript\npb().style('fill:red;width:30px;');\n\npb().style({\n  fill: 'red';\n  width: '30px'\n});\n```\n\n### trim ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#trim))\n\nTrims the image background.\n\n#### Example\n\n```typescript\npb().trim({\n  threshold: 10,       // required\n  color: 'ffffff',     // optional\n  equal: {             // optional\n    horizontal: true,  // optional\n    vertical: true     // optional\n  }\n});\n```\n\n### unsharpen ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#unsharpening-idunsharpening))\n\nAllows redefining unsharpening options.\n\n#### Example\n\n```typescript\npb().unsharpen({\n  mode: UnsharpeningMode.AUTO,   // optional\n  weight: 11,                    // optional\n  dividor: 24                    // optional\n});\n```\n\n### videoThumbnailKeyframes ([imgproxy docs](https://github.com/imgproxy/imgproxy-docs/blob/676c6d4b1f5d9fee79abfecf130fc7dda3f9124e/versioned_docs/version-3.24.x/usage/processing.mdx#video-thumbnail-keyframes-pro-video-thumbnail-keyframes))\n\nSpecifies whether the latest keyframe before the video thumbnail second should be used for thumbnail generation\n\n#### Example\n\n```typescript\npb().videoThumbnailKeyframes(true);\n```\n\n### videoThumbnailSecond ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#video-thumbnail-second-idvideo-thumbnail-second))\n\nRedefines the second used for the thumbnail.\n\n#### Example\n\n```typescript\npb().videoThumbnailSecond(3);\n```\n\n### videoThumbnailTile ([imgproxy docs](https://github.com/imgproxy/imgproxy-docs/blob/676c6d4b1f5d9fee79abfecf130fc7dda3f9124e/versioned_docs/version-3.24.x/usage/processing.mdx#video-thumbnail-tile-pro-video-thumbnail-tile))\n\nGenerates a tiled sprite using the source video frames\n\n#### Example\n\n```typescript\npb().videoThumbnailTile({\n  step: 1,           // required\n  columns: 1,        // required\n  rows: 1,           // required\n  tileWidth: 50,     // required\n  tileHeight: 50,    // required\n  extendTile: true,  // optional\n  trim: true,        // optional\n  fill: true,        // optional\n  focusX: 10.3,      // optional\n  focusY: 10.3,      // optional\n});\n```\n\n### watermark ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#watermark))\n\nPlaces a watermark on the processed image.\n\n#### Example\n\n```typescript\npb().watermark({\n  opacity: 0.8,                          // required\n  position: WatermarkPosition.REPLICATE  // optional\n  scale: 2                               // optional\n});\n\npb().watermark({\n  opacity: 1.0,\n  scale: 1,\n  position: WatermarkPosition.WEST  // optional\n  offset: {                         // optional\n    x: 10,                          // optional\n    y: 10                           // optional\n  }\n})\n```\n\n### watermarkShadow ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/f95f57bb4df35c69ae2257958006ef54b1c1d8c7/docs/generating_the_url.md#watermark-shadow-idwatermark-shadow))\n\nAdds a shadow to the watermark.\n\n#### Example\n\n```typescript\npb().watermarkShadow(10);\n```\n\n### watermarkSize ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#watermark-size-idwatermark-size))\n\nDefines the desired width and height of the watermark. imgproxy always uses `fit` resizing type when resizing watermarks and enlarges them when needed.\n\n#### Example\n\n```typescript\npb().watermarkSize({\n  width: 30,  // required\n  height: 30  // required\n});\n```\n\n### watermarkText ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#watermark-text-idwatermark-text))\n\nGenerate an image from the provided text and use it as a watermark.\n\n#### Example\n\n```typescript\npb().watermarkText(\"my watermark\");\n```\n\n### watermarkUrl ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#watermark-url-idwatermark-url))\n\nUse the image from the specified URL as a watermark.\n\n#### Example\n\n```typescript\npb().watermarkUrl('https://example.com');\n```\n\n### zoom ([imgproxy docs](https://github.com/imgproxy/imgproxy/blob/6f292443eafb2e39f9252175b61faa6b38105a7c/docs/generating_the_url.md#zoom))\n\nMultiply the image dimensions according to the specified factors.\n\n#### Example\n\n```typescript\npb().zoom(3);\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitpatty%2Fimgproxy-url-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitpatty%2Fimgproxy-url-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitpatty%2Fimgproxy-url-builder/lists"}