Summary
with_lossless(bool) can't express near-lossless modes that WebP, JXL, and PNG support
- WebP:
with_near_lossless(0-100) pre-rounds pixels in VP8L lossless path
- JXL: distance 0.0-1.0 "perceptually lossless zone" (distinct from Modular lossless)
- PNG:
with_near_lossless_bits(1-4) rounds LSBs before DEFLATE
- AVIF, JPEG, GIF have no near-lossless mode
Proposal
Add to EncoderConfig trait:
enum LosslessMode {
Lossy,
NearLossless,
Lossless,
}
Codecs without near-lossless treat NearLossless as high-quality lossy. Replaces with_lossless(bool) (deprecate, keep working via true → Lossless, false → Lossy).
Summary
with_lossless(bool)can't express near-lossless modes that WebP, JXL, and PNG supportwith_near_lossless(0-100)pre-rounds pixels in VP8L lossless pathwith_near_lossless_bits(1-4)rounds LSBs before DEFLATEProposal
Add to
EncoderConfigtrait:Codecs without near-lossless treat
NearLosslessas high-quality lossy. Replaceswith_lossless(bool)(deprecate, keep working viatrue→Lossless,false→Lossy).