2026 Matrice de décision livraison design sur Mac : AVIF en lot vers PNG — quantification, profondeur de couleur, sRVB et seuils de volume sur Mac mini M4 distant

Les designers et front reçoivent de l’AVIF alors que le brief exige du PNG sRVB huit bits avec plafonds octets. Cette matrice 2026 fixe la chaîne d’outils, un tableau couleur / alpha, un lot avec retry et des seuils par dossier d’export pour un Mac mini M4 distant nocturne.

Sommaire

Frictions : AVIF entrant, PNG sortant, contrat absent

  1. Profondeur surprise. Un master dix ou douze bits impose un pipeline explicite ; beaucoup de CMS refusent le PNG 16 bits.
  2. Dérive d’espace. BT.2020 ou PQ se lit bien dans un lecteur et s’aplatit ailleurs après conversion naïve.
  3. Sémantique alpha. Alpha droite contre prémultipliée casse les logos sur fonds clair ou sombre.
  4. Débit et confiance. Sans JSONL ni versions d’outils figées, l’ops ne peut pas rejouer le lot d’avril en juin.

Alignez formats avec la checklist WebP / AVIF vs PNG et la couleur avec la checklist sRVB vs Display P3 avant toute boucle dossier.

Chaîne d’outils : comparatif ffmpeg, libavif et ImageMagick sur Apple Silicon

Un décodeur principal par dépôt ; pas de brew upgrade sur le worker sans relecture ; trois fichiers or avant d’augmenter le parallélisme.

Outil Préférer quand Points de vigilance
avifdec (libavif) Images fixes, lien serré aux releases libaom, peu de surprises de filtre Pas de réécriture ICC intégrée ; enchaîner magick pour la politique de profil
ffmpeg 6.1+ Pipelines déjà riches en -filter_complex ; métadonnées atypiques Vérifier -pix_fmt rgba contre rgb24 sous peine de perdre l’alpha
ImageMagick 7 magick Même binaire pour identify et conversion ; PNG32 et -depth 8 explicites Aligner les versions sur la CI ; journaliser magick -list format pour AVIF

Historique WebP ? Croisez avec la matrice WebP → PNG.

Couleur et transparence : tableau de paramètres

Champ du contrat Drapeau ou valeur recommandé Condition d’échec
Profondeur de sortie magick entree.avif -depth 8 PNG32:sortie.png identify -verbose affiche 16-bit alors que le brief impose huit bits
Verrou sRVB -colorspace sRGB après décodage ; embarquer sRGB IEC61966-2.1 ou retirer l’ICC avec une ligne README — une seule règle par SKU Profil Display P3 embarqué sans validation produit
Alpha droite RGBA Décoder en PNG32 ; régression visuelle sur #FFFFFF et #0B0D12 Halos ou franges grises sur diagonales de logo
Repli avec perte pngquant --quality=70-85 --speed 1 --skip-if-larger -f -o q.png sansperte.png Banding sur dépassement de la plage qualité signée

Matrice : signaux dans l’AVIF source versus PNG livrable

Signal source Stratégie PNG Risque
AVIF avec perte, huit bits, balisé sRVB Décoder en PNG sans perte puis pngquant optionnel si max_bytes échoue Faible sur la couleur ; volume souvent supérieur à l’AVIF
Encore HDR ou PQ Repartir du master feuilleté si possible ; sinon opérateur de tone-map identique sur chaque worker Élevé entre Safari et Chrome sans contrat écrit
Chrome UI monochrome PNG palette seulement si le brief l’autorise ; sinon RGBA huit bits Moyen : palette accidentelle casse les ombres douces

Script de lot, échecs et retry sur Mac M4 distant

Utilisateur dédié, sources RO, écriture staging/ puis mv vers out/. Même discipline pngquant / zopflipng que sur vos autres lots PNG.

Étape 1 — Décodage libavif

avifdec -d 8 --png-compress 2 "$src" "$tmp/${base}.png" \
  || echo "{\"fichier\":\"$src\",\"etape\":\"avifdec\",\"ts\":\"$(date -Iseconds)\"}" >> echecs_lot.jsonl

Étape 2 — Variante ffmpeg

ffmpeg -hide_banner -y -i "$src" -frames:v 1 -pix_fmt rgba "${tmp}/${base}.png"

Étape 3 — Typage couleur

magick "$tmp/${base}.png" -colorspace sRGB -depth 8 PNG32:"$work/${base}.png"

Étape 4 — Portillon octets

octets=$(stat -f%z "$work/${base}.png")
test "$octets" -le "$MAX_OCTETS" || pngquant --quality=70-85 --speed 1 --skip-if-larger -f -o "$work/${base}.q.png" "$work/${base}.png"

Étape 5 — Politique de retry

Trois tentatives E/S avec sleep $((2**n)) ; erreurs décodeur = bump Homebrew + même ligne JSONL.

Dossiers d’export design et seuils d’acceptation

Miroir strict des remises : ui-lean/avif → ligne lean, marketing/hero/avifhero. Tableau YAML ou shell lu par le manifeste — pas de constantes dans Slack.

Dossier relatif d’export max_bytes Grand côté max Contrôles requis
ui-lean/avif ≤ 350000 ≤ 1600 px PNG32 si alpha ; ICC sRVB selon README SKU
components/std/avif ≤ 800000 ≤ 2048 px Type truecolor-alpha via identify ; ligne sha256 dans le manifeste
marketing/hero/avif ≤ 1600000 ≤ 2880 px Composition sur fonds clair et sombre ; plage pngquant signée par le lead si repli
Promouvoir seulement si shasum -a 256 source et PNG figurent au manifeste — audit batch distant.

Seuils citables pour tickets et README

  • Test lean : test "$(stat -f%z "$png")" -le 350000 pour les drops UI compacts.
  • Plage pngquant : défaut 70–85 ; resserrer vers 75–90 si banding visible sur portraits.
  • Parallélisme : plafonner jobs à cœurs physiques moins un sur Mac mini M4 afin que la thermique ne passe pas pour des décodages « aléatoires ».

Passer à l’action : MacPng pour sweeps AVIF nocturnes

Ouvrez l’accueil MacPng, comparez les forfaits et nœuds, passez par location ou achat lorsque vous avez besoin d’hôtes Apple Silicon dédiés, et consultez l’aide SSH/VNC pour monter le worker. Poursuivez sur le blog pour des matrices adjacentes.

Mac M4 distant · AVIF → PNG

Livrer du PNG contractuel sans faire fondre les portables

Figez les piles de décodage, streamez les échecs en JSONL et appliquez des max_bytes par dossier pendant que l’équipe design reste sur Figma en local.

Accueil Louer / acheter Forfaits & nœuds Aide & mise en route
Mac M4 distant · AVIF → PNG Lot & portillons octets
Louer maintenant