Quarter turns and mirrors could avoid re-encoding entirely
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- computer-graphics, frontend
Direzione di ricerca
Inizia dal percorso renderToCanvas esistente e leggi il reader e il writer condivisi di #18. Il lavoro è completato quando gli stati JPEG idonei di rotazione di un quarto di giro e specchiatura restituiscono i byte originali con l’orientamento EXIF corretto, mentre le altre modifiche e PNG o WebP continuano attraverso il percorso normale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A 90° rotation or a flip does not change a single pixel value, it only changes where they sit. We still send the whole image through renderToCanvas and re-encode it, so a JPEG loses quality every time someone straightens a photo, and a large one takes the full encode cost for a change a tag could express.
Asked for in nextcloud/viewer#2804, pointing at Memories which already does it.
The idea: when the only thing the state carries is some multiple of a quarter turn and/or a mirror, and the source is a JPEG, rewrite the EXIF orientation tag on the original bytes and hand those back untouched.
- Recognise the case, no crop, no adjustment, no filter, no annotation, and rotation a multiple of 90
- Map our rotation and flip state onto the eight EXIF orientation values
- Return the original bytes with the tag rewritten
- Fall back to the normal path for everything else, including PNG and WebP where there is no tag to lean on
Depends on #18, it needs the same reader and writer. Worth doing after it rather than inventing a second half-parser.
👾 Found while going through the viewer's editor issues with Claude Code.
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 0
- Merge medio
- 1h 15m
- PR unite (30g)
- 31
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nextcloud-libraries/nextcloud-image-editor
-
Allow saving only as a copyApertatype: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
nextcloud-libraries/nextcloud-image-editor#76 ·
I maintainer di solito rispondono entro 1 giorno
-
type: enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
nextcloud-libraries/nextcloud-image-editor#77 ·
I maintainer di solito rispondono entro 1 giorno
-
AI assisted status: triage type: enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
nextcloud-libraries/nextcloud-image-editor#58 ·
I maintainer di solito rispondono entro 1 giorno
-
AI assisted type: enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
nextcloud-libraries/nextcloud-image-editor#17 ·
I maintainer di solito rispondono entro 1 giorno
-
status: confirmed type: enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
nextcloud-libraries/nextcloud-image-editor#2 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud-libraries/nextcloud-image-editor
Issue simili
-
documentation good first issue
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
sujithputta02/Esapay#13 ·
-
Share dialog: the address book's contact count reads "1 contacts" (no singular form in any language)Forse già presa @chibenwa l’ha presa oggi. Apertaai-driven-qa bug claude Cosmetic
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
linagora/twake-contacts-frontend#271 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Koenkk/zigbee2mqtt#33402 ·
I maintainer di solito rispondono entro 1 giorno
-
dx P2 platform Stellar Wave Wave 10
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
winsznx/routedock#579 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:ui effort:S enhancement priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno