Skip to content

v0.1.0

Latest

Choose a tag to compare

@roukmoute roukmoute released this 28 Oct 20:18
1f82ae1

Initial independent image-decoding package for 64-bit PHP 8.3+: JPEG, JPEG 2000 and JBIG2, with explicit immutable requests and component planes, request-scoped state and configurable resource budgets. It has no production dependency on PDFToolkit core, Reader, native processes or PHP extensions.

The package retains native precision, sampling geometry, signed samples and colour/alpha metadata. Unsupported mechanisms, malformed input and exhausted resources are distinct failures. Reader's native-first selection is released separately; this library is its optional PHP fallback and can also be used directly.

Validation: 413 tests / 2,460 assertions, PHPStan level 8 and formatting on PHP 8.3, 8.4 and 8.5. The exact candidate also passes independent JPEG coefficient/sample comparisons, 94 JPEG 2000 fixtures and 145 JBIG2 fixtures. Reports distinguish independent decoders, independent encoders and normative vectors; high-precision/Part 2 vectors and native decoder gaps are explicitly identified. A finite corpus is not universal format certification.

See English documentation, French documentation, the per-codec guides, provenance and retained third-party notices for exact scope and limitations.


Première version du package indépendant de décodage JPEG, JPEG 2000 et JBIG2 en PHP 8.3+ 64 bits. Requêtes et résultats immuables, objets par décodage et budgets configurables ; aucune dépendance de production au core, au Reader, aux processus natifs ou aux extensions PHP.

La précision, les grilles, les valeurs signées et les métadonnées couleur/alpha sont conservées. Les erreurs de format, les capacités non prises en charge et les limites de ressources restent distinctes. La sélection native puis PHP appartient au Reader, publié séparément.

Validation du commit exact sur PHP 8.3, 8.4 et 8.5 : 413 tests / 2 460 assertions, PHPStan niveau 8, style et comparaisons indépendantes JPEG, JPEG 2000 (94 cas) et JBIG2 (145 cas). Les rapports distinguent les décodeurs indépendants, les encodeurs indépendants et les vecteurs normatifs. Les guides FR/EN décrivent les mécanismes couverts, les limites des oracles et les exclusions sans prétendre à une certification universelle.