Quality
Adjust image compression quality in real-time to achieve the best balance between visual quality and file size.
Function
- Operation:
quality - URL pattern:
?x-oss-process=image/quality,{param}_{value} - Supports relative quality (q) and absolute quality (Q)
- Only effective for JPG / WebP; PNG / GIF and other lossless formats unaffected
Qtakes precedence when bothqandQare present
Parameters
| Param | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
q | Integer | No | — | [1, 100] (%) | Relative quality: compress as % of source quality |
Q | Integer | No | — | [1, 100] (%) | Absolute quality: directly specify target quality |
[!NOTE]
qrelative quality: source 80%,q_90outputs 72% (80% × 90%)Qabsolute quality: compresses to target if source ≥ target; keeps source if source < target- For JPG,
qis relative; for WebP,qbehaves likeQ(absolute)- When both
qandQare present,Qtakes precedence
Code Examples
URL DSL
# Relative quality 90%
?x-oss-process=image/quality,q_90
# Absolute quality 75%
?x-oss-process=image/quality,Q_75
processImage (URL string)
import { processImage } from '@imgx-kit/core';
const buf = await processImage(
'./photo.jpg',
'image/quality,q_90',
);
imgx chain API
import { imgx } from '@imgx-kit/core';
// Relative quality
const buf1 = await imgx('./photo.jpg')
.quality({ q: 90 })
.toBuffer();
// Absolute quality
const buf2 = await imgx('./photo.jpg')
.quality({ Q: 75 })
.toBuffer();
Edge Cases & Limits
- Only effective for JPG / WebP
- PNG / GIF and other lossless formats are unaffected
Qtakes precedence when bothqandQare present- General size / pixel limits: see Getting Started