docs: keep JPEG q100 everywhere, Bluesky resize only touches dimensions

This commit is contained in:
Paulo Castellano 2026-04-23 15:07:23 -03:00
parent 7b5955ff40
commit 0717308ca6

View file

@ -188,7 +188,7 @@ ### At upload time (asset controller)
2. Detect real MIME via finfo
3. If MIME is an image AND format ≠ JPEG AND format ≠ GIF:
a. Load into Intervention\Image (keeps original dimensions + aspect)
b. Encode as JPEG q90 with SAME dimensions
b. Encode as JPEG q100 (no quality loss — format conversion only) with SAME dimensions
c. Overwrite the original file at `medias/{uuid}.jpg`
d. Save Media row with mime_type='image/jpeg'
4. GIFs: keep as GIF (for X/Bluesky/Mastodon only). Frontend blocks incompatible platforms.
@ -203,7 +203,7 @@ ### At publish time (minimal — no resize except Bluesky)
| Platform | Handling at publish |
|----------|---------------------|
| Instagram, Facebook, LinkedIn, X, Threads, Pinterest, TikTok Photo, YouTube thumb, Mastodon | Pass `media.url` as-is to the platform API. If the platform rejects for dimensions/size, the error surfaces to the user via `post_platform.error_message`. |
| **Bluesky (only exception)** | Bluesky's API accepts raw bytes (not URL). Before upload, check byte size: if > 976 KB, do Postiz-style iterative 10 %-shrink loop **in memory**, then upload bytes. No CDN round-trip, no temp files. |
| **Bluesky (only exception)** | Bluesky's API accepts raw bytes (not URL). Before upload, check byte size: if > 976 KB, do Postiz-style iterative 10 %-shrink loop **in memory** — shrinks only dimensions (not quality — keeps q100). Loops until ≤ 976 KB. Then upload bytes. No CDN round-trip, no temp files. |
### Filename preservation