How to save a base64 image from javascript with php

/how-to-save-a-base64-image-from-javascr

  • Je bidouille une interface pour faire passer des filtres d’images sur des photos prises directement à partir d’un téléphone, via une interface Web.

    Une première difficulté est que l’iPhone, tenu verticalement, expédie des images JPEG « tournées » à 90° et avec un EXIF qui indique qu’elles sont tournées à 90°… Ce qui fait que si je fais passer mes filtres (ImageMagick) ici directement sur de telles images, je me retrouve avec des images retraitées qui s’affichent « couchées » et non plus verticales comme elles ont été prises.

    La solution pour me faciliter le travail : dès réception de l’image, après le move_uploaded_file, je fais passer un -auto-orient d’Imagemagick sur le fichier, et ainsi je n’ai plus que des fichiers déjà « redressés ».

    move_uploaded_file($fichier, $dest);       
    exec("convert $dest -auto-orient $dest");
    • Je continue mes développements, je note les trucs dont j’ai (peut-être) besoin…

      Un bouton de formulaire HTML qui permet de choisir entre une photo de la photothèque ou prendre une nouvelle photo, c’est facile :

      <input type="file" accept="image/*">
    • Le souci, c’est que l’appareil photo s’ouvre, par défaut, en visant face à l’utilisateur, alors que l’idée de ce développement, c’est de faire des selfies.

      Et comme c’est, essentiellement, une installation avec un iPad en libre service utilisé à la manière d’un Photomaton, j’ai absolument besoin que le truc se déclenche en mode selfie.

      Solution pour l’instant : faire une appli Cordova, avec le plugin cordova.plugin.camera :
      https://github.com/apache/cordova-plugin-camera/blob/master/doc/fr/index.md

      Configuration pour l’instant :

           navigator.camera.getPicture(onPhotoDataSuccess, onFail,
                   {
                           quality: 80,
                     destinationType: destinationType.DATA_URL,
                     cameraDirection: 1,
                     encodingType: 0,
                     targetWidth: 1024,
                     targetHeight: 1024
             });

      (cameraDirection est le réglage qui permet de passer par défaut en selfie).

    • Au rayon des loufoqueries, au moment de déménager le site vers son serveur définitif, sur lequel j’avais également accès à ImageMagick en ligne de commande, la plupart de mes scripts ne fonctionnaient plus. Et j’ai dû reprendre (en tâtonnant, évidemment) les lignes pour tenter de refaire fonctionner les filtres graphiques.

    • Ai-je besoin de rappeler ici que les documentations consacrées à ImageMagick sont repoussantes de laideur, difficilement utilisables, beaucoup de choses ne pas clairement explicitées…

      En revanche, si tu as besoin de faire l’interface de ton site avec des Gif de 32 pixels par 32 pixels réduits en 16 couleurs, alors là, ça c’est très bien expliqué.