Classe PHP pour GD + API: Scriptopic

Il y a quelques jours, lassé de reprendre à zéro à chaque fois que je dois faire un truc avec GD sur PHP, je me suis dit que je pouvais faire une classe pour ça. Comme, exceptionnellement, j'avais un peu moins de deux heures de tranquillité, je m'y suis collé.

Au bout du compte, une fois la classe codée, il faut bien la tester...😬

drame.jpeg

C'est le problème des codeurs : ils ont du mal à arrêter de coder 🤩. Du coup, me voilà en route pour un script exploitant pictools.php... et ce qui aurait du prendre deux heures a pris plusieurs jours de papa codeur (petit rappel: 1 h de papa codeur = 7,2 heures de codeur normal en zone de guerre, au cours actuel 💣)

Bref, j'ai donc pondu une «api» avec un frontend permettant d'appliquer des transformations à une image à partir de son URL.

😎 petite image, long discours, toussa.

Capture du 2022-07-04 21-43-27.png

Donc, on fournit l'URL de l'image puis on ajoute des actions les unes à la suite des autres. Certaines n'ont pas besoin de paramètres (emboss, sepia etc) et d'autres si (contrast, resize etc)

Quand on clique sur un bouton action, on ajoute cette action à la liste avec, le cas échéant, l'input qui va bien pour les paramètres avec un placeholder de rappel.

Ainsi, on peut resize l'image à une taille précise ou à un pourcentage de la taille normale: tous les paramètres de coordonnées et de taille peuvent être précisés en pixels ou en pourcentages.

De plus, si on veut redimensionner l'image à une largeur en conservant le ratio automatiquement, il suffit de mettre -1 à la place de la hauteur: le script se démerdera tout seul.

La config ci-dessus donne le résultat ci-dessous:

pexels-photo-67818-large-758x505.jpeg

L'image d'origine

result.jpeg

Le résultat donné par scriptopic

Mais c'est pas tout

Donc, scriptopic permet de retoucher une image automatiquement. OK.👍

Mais cette image est utilisable directement depuis son URL de génération: si on colle l'URL précisée dans le cadre résultat, ça fonctionne. Avec un peu d'habitude, on peut le faire en direct (genre pour une image d'en-tête...). Comme les images retouchées sont sauvegardées avec un hash de l'url de requête, si on l'appelle à nouveau, elle ne sera plus générée mais simplement renvoyée (visible soulagement du serveur )

Et aussi

Comme des fois on a la flemme de faire une balise image, Scriptopic vous la donne directement: un double-clic et c'est copié prêt à coller...

Mais ce n'est toujours pas tout... (vous êtes gâtés)

Un truc rigolo, c'est que, comme pour Stamp, le front de scriptopic génère un bookmarklet en temps réel (c'est la deuxième ligne du cadre résultat): une fois satisfait de votre script, le bookmarklet généré permet de l'appliquer à l'image en cours: vous ouvrez l'image dans un onglet et clic-clac merci kodak.

Si vous voulez simplement envoyer l'image en cours pour travailler dessus, le bookmarklet de base est dispo en footer.

Atta atta, pars pas j'ai pas fini

Histoire d'ajouter encore une feature, vous pouvez stocker des scripts, à la main, dans le dossier ... scripts/ . Vous utiliserez le nom du fichier dans l'url avec ?script=[nomdefichier]

Ainsi, en sauvant le json de l'exemple (cadre «Script au format JSON») dans un fichier scripts/sepia.json vous pouvez ensuite l'appeler avec&script=sepia

Vous pouvez vous faire une bibliothèque de scripts pour tout et les appeler directement au lieu de vous taper du json dans l'URL

Tout est expliqué dans l'aide : https://api.warriordudimanche.net/scriptopic/?help

Hé m'sieu m'sieu:  pourquoi à la main ?  C'est mieux avec un  ptit bouton pour sauver  le script, non?

Ben parce que pour sauver sur le serveur, il faudrait un compte admin, donc un espace sécurisé et tout le toutim... et là, on parle pas du même projet

En conclusion

Le bouzin est testable là: https://api.warriordudimanche.net/scriptopic/

Et téléchargeable ici: https://api.warriordudimanche.net/scriptopic/?download

Je n'ai pas nettoyé le code, vu que je subis un harcèlement constant à la maison (lol), mais je le ferais, promis ! Le tout est en beta à l'arrache en licence amusez-vous avec.

Je n'ai pas encore écrit de doc pour pictools_class.php qui se trouve dans le zip, mais c'est assez simple à utiliser et chaque méthode est «documentée»


$picture=new pictool();// on peut mettre un array contenant les valeurs initiales des attributs : ['format'=>'png'] par exemple)
$picture->load('www.moncul.sur/la_commode.jpeg');
$picture->contrast(20);
$picture->sepia();
$picture->save("fichier.jpeg");
$picture->display();

Le script matrix qui alterne sketch et gaussian à plusieurs reprises puis colorise en vert

Pas flippant du tout.

Todo

  • Débugger, vu que ça va se dévoiler à l'usage plus intensif
  • ajouter le listage et l'usage des scripts sauvegardés dans le front.

Excalidraw

Très intéressant, ça: une appli opensource et autohébergeable (à base de React) pour réaliser des graphiques dans un style fait main du meilleur effet... En plus, il semblerait qu'on puisse travailler en mode collaboratif.

canvas.png

En plus, il y a plein de packs de graphismes à ajouter depuis le dépôt https://libraries.excalidraw.com/

software-architecture.png

forms.png

Via https://www.lagilb.fr/Shaarli/

Kubuntu Linux 19.10 for a digital painting workstation: Reasons and Install guide. - David Revoy

Kubuntu 19.10 ships out of the box with a first class and fully featured tablet configuration panel, including the possibility to setup all buttons (eg. modifier on stylus button as "Ctrl"), add profiles and switch between them, mapping to custom area and support of multi monitors switch and calibration for pen-display!... That's something that no other desktop environment has to the date (the closer being GNOME but with many features missing in comparison). On the past, I ran custom bash script for years before having the possibility to setup my tablet this way.

C'est vrai que je passe aussi par un pilote tiers pour configurer... faudra que je teste sous kubuntu du coup (pas facile à dire)



Babidi Bobidi Bou !

 Oui, je me rends bien compte que le titre, si évocateur qu'il soit, ne permet pas vraiment de faire un lien direct avec FontDropper, une petite appli qui pourrait rapidement se révéler indispensable à tout intégrateur / maquettiste qui veut gagner du temps... 

Toutefois, j'aime bien être créatif et fantaisiste parce que sinon, à la longue, je m'ennuie et c'est en s'ennuyant qu'on finirait par devenir adulte, si on n'y prenait pas garde (si, si, méfiez vous, ça peut arriver très insidieusement)...

Bon, pour revenir au thème de ce billet - la présentation de Font Dropper - c'est par là, ici, en dessous... (à tout de suite).

(...)

Réussir ses photos d'enfants...

Pour réussir ses photos d'enfants, quand on n'est qu'un parent lambada sans talent particulier, on a plusieurs méthodes personnelles:
  • Le recours au chatterton ou au ciment à prise rapide, mais on perd en spontanéité,
  • le recours systématique au mode rafale, qui provoque une inflation drastique du dossier "photos/" et une évolution inversement proportionnelle du ratio nb de prise de vues/qualité de la photo,
  • le recours aux sucreries, mais le cadrage finit tôt ou tard par s'en ressentir (le panoramique pour les portraits: bof),
  • le recours à la télé, mais du coup les modèles perdent visiblement de leur vivacité d'esprit...

(...)

Fil RSS des articles