imgproxy : un proxy pour vos images
imgproxy est un reverse proxy pour les images avec plein de fonctionnalités intéressantes dans la version gratuite :
- Redimensionnement d’images à la volée
- Cacher l’url source avec un système de signature
- Les options sont multiples :
- Redimensionnement d’images
- Avec plein d’options sur le format
- Choix de l’algo (qualité)
- Rotation
- Arrière plan
- Luminosité, contraste, Saturation
- Pixelisation
- Filigrame
- Redimensionnement d’images
Il existe une version pro avec des fonctionnalités complémentaires
Générer des url avec un script
Avec ce script : Generate imgproxy url in browser and Node easily. Lightweight and Fast!
# npm
npm install @misaon/imgproxy
# yarn
yarn add @misaon/imgproxy
# pnpm
pnpm install @misaon/imgproxy
Si vous n’avez pas la bonne version de nodejs, c’est possible de le faire avec docker
docker pull node
Puis lancer une console dans le docker :
docker run -it -v /tmp/:/tmp/ --entrypoint bash node:latest
su - node
# npm
npm install @misaon/imgproxy
# yarn
yarn add @misaon/imgproxy
# pnpm
pnpm install @misaon/imgproxy
Sur la machine qui héberge le docker, dans /tmp éditer un fichier test.mjs
Url de l’image d’origine : https://live.staticflickr.com/65535/52855625912_656d1cc302_o.jpg
import { getImageUrl } from "@misaon/imgproxy";
const imageUrl = getImageUrl("https://live.staticflickr.com/65535/52855625912_656d1cc302_o.jpg", {
baseURL: "http://localhost:8080/", // optional
secret: "VOTRE-SECRET",
salt: "VOTRE-CLE-SALT",
modifiers: {
blur: "5",
width: "1200",
height: "1200",
watermark: "1:soea:::0.2",
},
});
console.log(imageUrl);
$ node /tmp/temp/test.mjs
Résultat une URL :
http://localhost:8080/0yjATZNUS7aFKvLpC_5sZEi8Lq4Vi_f7RA9xBUuIQho/bl:5/h:1200/wm:1:soea:::0.2/w:1200/aHR0cHM6Ly9saXZlLnN0YXRpY2ZsaWNrci5jb20vNjU1MzUvNTI4NTU2MjU5MTJfNjU2ZDFjYzMwMl9vLmpwZw
Avec ce résultat :
- Flou Gaussien
- Watermark
imgproxy a été lancé avec ces paramètres :
- le chemin vers le watermark
docker run -e IMGPROXY_KEY=VOTRE-CLE -e IMGPROXY_SALT=VOTRE-CLE-SALT -e IMGPROXY_WATERMARK_PATH=/tmp/filigrame.png -v /tmp:/tmp -p 8080:8080 -it darthsim/imgproxy