Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OGC WMS] Ajout d'un canal de transparence lors d'une conversion au format PNG #49

Open
nick-rv opened this issue Dec 12, 2024 · 4 comments
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers
Milestone

Comments

@nick-rv
Copy link

nick-rv commented Dec 12, 2024

Le fait de permettre une transformation côté serveur en WMS de JPEG vers PNG par exemple est une demande assez récurrente, dans le but d'obtenir une image avec possibilité de transparence.

Exemple de requête utilisée pour ce faire :
https://data.geopf.fr/wms-r/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG:3857&BBOX=177696.27517150468,6569352.2197727673,177966.25349106526,6569496.9584083026&WIDTH=1552&HEIGHT=832&LAYERS=PCRS.LAMB93&STYLES=&EXCEPTIONS=XML&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE

Actuellement la conversion vers le format PNG fonctionne en WMS mais il semble que le quatrième canal dédié à la transparence n'est pas présent dans l'image renvoyée dans la réponse.

J'ai l'impression qu'une conversion dans ce format PNG serait quasiment toujours dans le but de rendre transparente l'image obtenue ?
Est-il possible d'étudier la faisabilité de ce changement et le mettre en place le cas échéant ?

Remarque: L'utilisation de cette conversion vers le PNG semble être nécessaire aussi parfois lorsqu'elle est combinée avec une reprojection de l'image vers un système de coordonnées différent.
(Voir requête fournie en exemple plus haut, avec une donnée stockée en EPSG:2154 mais réclamée en EPSG:3857)

Merci

@nick-rv nick-rv added the enhancement New feature or request label Dec 12, 2024
@Dolite
Copy link
Member

Dolite commented Dec 12, 2024

Une image PNG ne contient pas forcément de canal de transparence. Sans style particulier, la structure des données n'est pas changée, seul le format est configurable. On pourrait imaginer assumer le paramètre TRANSPARENT à TRUE ou FALSE pour ajouter ou supprimer le canal alpha à la volée, mais ce n'est pas implémenté actuellement.

@Dolite Dolite added this to Roadmap Dec 12, 2024
@Dolite Dolite moved this to To do in Roadmap Dec 12, 2024
@Dolite Dolite added this to the 6.2.0 milestone Dec 12, 2024
@Dolite Dolite added the good first issue Good for newcomers label Dec 12, 2024
@nick-rv
Copy link
Author

nick-rv commented Dec 13, 2024

Le fait d'obtenir un canal de transparence en fonction de la valeur booléene du paramètre TRANSPARENT semble tout à fait clair et logique pour un utilisateur.
Je pense que ceci répondrait au besoin.

@nick-rv
Copy link
Author

nick-rv commented Dec 17, 2024

Je pense que dans l'idée il y a aussi le besoin d'évaluer le coût (délai de traitement et charge cpu/mémoire) au niveau du traitement d'une telle requête (conversion de JPEG vers PNG 4 canaux, éventuellement combiné à une reprojection) afin de s'assurer d'un impact mesuré à l'échelle d'un rok4 en production.

Si, mettons, 10% des requêtes réclament une conversion de ce type (afin de profiter de la transparence du PNG), peut-être que ce serait contreproductif (ou au contraire relativement transparent).

@Dolite
Copy link
Member

Dolite commented Dec 17, 2024

En WMS, quelque soit la compression de la donnée stockée, on travaille en brut et on applique en sortie la compression demandée. Le seul surcoût qu'il y aurait par rapport à maintenant, ce serait la suppression d'un canal alpha, assez léger, ou l'ajout (et avec quelle logique, rendre transparent le nodata a priori, ce qui a vraiment un coût important).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
Status: To do
Development

No branches or pull requests

2 participants