arnapou / image-cropper
Project - Local image tools for cropping
Requires
- php: ~8.3.0
- ext-imagick: *
- arnapou/dto: ^4.1
- arnapou/psr: ^2.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.0
README
Simple outil web (installation locale docker avec volumes) pour faire de la découpe d'image.
Sa force est dans l'absence totale de dépendances javascript (100% natif) et très peu de dépendances php.
Installation
Ce projet s'installe en local et permet de traiter des images mises dans public/images
.
Le moyen le plus simple est un docker-compose
puis d'ouvrir http://localhost:8080
composer create-project arnapou/image-cropper
cd image-cropper
docker compose up
packagist 👉️ arnapou/image-cropper
⚠️ Les ports non-standard sont bloqués dans la config de certains browsers comme Firefox avec son option
network.security.ports.banned.override
dans about:config à mettre à la valeur1-65535
Histoire
J'ai créé cet outil web 10 ans après deux outils analogues que j'ai réalisé en C# en 2011.
Les objectifs étaient :
- pouvoir faciliter l'utilisation de ces outils hors contexte "Windows" de Microsoft
- ne dépendre de rien : développement from scratch sans aucun framework
- m'amuser avec PHP 8 dans un contexte typage + analyse statique
- développer rapidement : environ 30h de taf
- une seule dépendance obligatoire : l'extension php Imagick
Petite vidéo de démo
Description des outils
Cropper
Objectif :
- extraire un objet d'une image à fond blanc en la croppant en carré
Légende :
- image sélectionnée sur laquelle on clique pour créer les marqueurs (croix) en (2)
- seuillage automatique de l'image avec les marqueurs en plus pour permettre trouver les bornes de croppage : utilise le seuil paramétrable en (4)
- aperçu du crop final avec les marges scalées (5)
- plusieurs seuils possibles de détection
- échelle de la marge rajoutée autour du crop
- liste de toutes les images à traiter, celles déjà traitées sont marquée en vert
Rectangle
Objectif :
- extraire plusieurs objets rectangulaires d'une image en croppant et tournant automatiquement les élements
Légende :
- image sélectionnée sur laquelle on clique pour poser les marqueurs de chaque coins de rectangle (2)
- aperçu des marqueurs et de la zone couverte par la sélection
- aperçu de la zone tournée et croppée automatiquement
- liste de toutes les images à traiter avec celles déjà traitées de marquées en vert
- seuil de contrôle de qualité de l'orthogonalité des quatre cotés
- possibilité d'ajuster corriger l'angle si besoin
- margin extérieure ajoutée si besoin (cas de rectangle à bordure blanche difficile à cliquer)
- ajouter le rectangle croppé à la liste des crops de cette image
- visualisation des "ajouts" déjà effectués
- enregistrement de toutes les images en (9)
Php versions
Date | Ref | 8.3 | 8.2 | 8.1 | 8.0 |
---|---|---|---|---|---|
25/11/2023 | 4.x, main | × | |||
01/01/2023 | 3.x | × | |||
02/02/2022 | 2.x | × | |||
13/03/2021 | 1.x | × |