PixZeno
Licenses
PixZeno’s pages, layout, and image tools are the site. Three outside libraries do jobs a browser does not do well alone. This page names them, says which license applies, and links the files so you can read the terms yourself.
What is ours, and what is borrowed
The compressor, the resizer, the cropper, the social exports, the metadata reader, and the page text are PixZeno. They use the browser’s own canvas and file APIs. No package manager runs on the server, and the production site does not need Node.
Three libraries are copied into the site as separate files under /assets/vendor/. They are not bundled into the homepage. A library loads only when the tool that needs it actually runs. That keeps the first page small, and it keeps the license of each library attached to a file you can replace.
HEIC, and the decoder inside it
iPhone photos often arrive as HEIC or HEIF. Safari can sometimes decode them with the browser itself. Chrome and Firefox often cannot. The HEIC page tries the browser first. If that fails, it decodes the file in a worker with libheif 1.23.2, from the libheif-js 1.23.2 package.
libheif-js and the libheif library inside it are LGPL-3.0. PixZeno did not write them. The decoder stays a separate file, libheif-bundle.mjs, so another build can replace it. The copy served here does not call eval or new Function. The page content security policy does not allow unsafe-eval.
The file is loaded only on the HEIC to JPG page, and only when a conversion starts. Camera metadata is not preserved. The JPG is 8-bit. A Display P3 profile and any HDR gain map stay in the original HEIC and are not written into the JPG. That is a limit of this conversion, and the HEIC page says so. It is not a term of the license.
The PDF library
Image to PDF uses pdf-lib 1.17.1. The copyright line names Andrew Dillon, the pdf-lib contributors, and portions belonging to Microsoft. The license is MIT: you may use, copy, and distribute it, provided the copyright notice and the permission notice stay with the software. The software is provided as is, without a warranty. That warranty line is the library’s, and it matches how PixZeno treats the PDF tool itself. A PDF that fails to build is reported as a failure. It is not patched up into a fake file.
The library loads only when you create the PDF, not when you merely open the page. JPEG and PNG bytes can be embedded directly. WebP and GIF go through the canvas first, because pdf-lib does not take those formats as they stand.
The ZIP library
When a tool offers Download all, the archive is built with fflate 0.8.3, MIT licensed, by 101arrowz. PixZeno calls zipSync to create the archive. It does not call the unzip function, and it does not open ZIP files you upload. Version 0.8.2 had a bug in that unzip path. The pin is 0.8.3 so the copy on the site is the fixed release, even though PixZeno does not use the affected function.
The library stays unloaded until you ask for the ZIP. A single download does not fetch it. Batch tools that can offer a ZIP include the compressor, HEIC conversion, conversion, WebP, social sizes, metadata removal, and the favicon package.
What was left out on purpose
There is no front-end framework and no web font. The icons are a small set drawn for the site. A large codec bundle was considered and skipped, because the canvas encoder already covers JPG, PNG, and WebP, and shipping extra decoders to every visitor would cost more than it saved. ImageMagick is not on the server. Sending every photo through a host-side converter would change the privacy story and the license story at the same time.
If a library is replaced, this page and the notice file should change in the same update. The versions below are the ones served now.
Read the notices
The short notice and the license texts sit next to the code. The source repositories are the place to read history, issues, and any newer release. PixZeno does not relicense these projects, and it does not add extra conditions on top of MIT or LGPL.
Questions
Does the homepage download the HEIC or PDF library?
No. The HEIC decoder loads only on the HEIC page when a conversion starts. pdf-lib loads only when a PDF is created. fflate loads only when a ZIP is requested.
Why is the HEIC file large?
It includes a WebAssembly build of libheif so browsers that cannot decode HEIC still have a chance. Keeping it off the other pages is how the rest of the site stays light.
Can the HEIC decoder be replaced?
Yes. It is a separate file, libheif-bundle.mjs, which is what the LGPL arrangement expects. Another build can take its place without rewriting the rest of PixZeno.
Do you open ZIP files that visitors upload?
No. fflate is used only to create a ZIP of results the browser already made. Uploaded ZIPs are not a supported input.
Are these libraries PixZeno’s property?
No. Each one keeps its own copyright and license. PixZeno’s pages explain the tools. They do not relicense libheif-js, libheif, pdf-lib, or fflate.
