Pages: 1
Hello
Voici un petit programme fait avec Processing.py. (j’ai choisi le mode python de Processing, pour utiliser la bibliothèque ftplib de python… peut-être y a t-il encore plus simple, m'enfin).
Il permet d’envoyer des images générées par Processing dans un dossier « img » sur un serveur FTP.
Également, avec un fichier php, nous pourrons afficher dynamiquement toutes les images contenues dans le dossier.
from ftplib import FTP #INIT SKTECH size(300, 300) nom = str(day()) + str(month()) + str(hour()) + str(minute()) + ".png" # nom du fichier genere #DESSIN fill(random(255), random(255), random(255)) ellipse(random(width), random(height), 30, 30) save(nom) #CONNEXION changer variables host = "ftp.******.fr" user = "******" password = "******" connect = FTP(host, user, password) #VERIF etat = connect.getwelcome() # Envoi message de bienvenue si connection print "etat connexion ftp ", etat rep = connect.dir() # Affiche repertoires print rep #ENVOI file = open(nom, 'rb') connect.sendcmd('CWD www/exemple/img') # Commande FTP pour se placer dans un dossier precis. A modifier. connect.storbinary('STOR ' + nom, file) file.close() #DECONNEXION et fermeture du programme. connect.quit() println("\nTermine !") exit()
Voici un code .php très sommaire pour afficher toutes les images du dossier. Dans l’exemple, le fichier .php ainsi que le dossier contenant les images sont placé sur mon serveur dans « www/exemple ». À modifier selon vos besoins, évidemment ! :-)
<!doctype html> <html> <head> <meta charset="utf-8"/> <title>Galerie img generees</title> <style> .img{ margin: 1em; } </style> </head> <body> <h1>Galerie des images generees avec Processing.</h1> <p> <?php $fichiers = glob('img/*'); foreach($fichiers as $i){ echo "<img class=\"img\" src=\"" . $i . "\">"; } ?> </p> </body> </html>
Un autre exemple avec draw. C’est encore imparfait puisque l’animation se fige pendant l’envoi…
from ftplib import FTP #envoie une image lorsqu'on appuie sur 'e' def setup(): size(300, 300) noStroke() def draw(): fill(random(255), random(255), random(255)) ellipse(random(width), random(height), 30, 30) ellipse(mouseX, mouseY, 10, 10) def keyReleased(): if key == 'e': println("envoi") envoi() def envoi(): # On enregistre notre image. nom = str(day()) + str(month()) + str(hour()) + str(minute()) + str(second()) + ".jpg" save(nom) println(nom) #delay(1000) #un delay pour laisser le fichier s'ecrire tranquillement # On ouvre serveur, connexion, envoi. host = "******" user = "******" password = "******" connect = FTP(host, user, password) etat = connect.getwelcome() print "etat connexion ftp ", etat rep = connect.dir() print rep file = open(nom, 'rb') connect.sendcmd('CWD www/exemple/img') connect.storbinary('STOR ' + nom, file) file.close() println("debug file close") connect.quit() println("\nTermine !")
edit: il y a un petit soucis avec les balises codes, non?
Dernière modification par jojolaglaise (2016-01-19 15:01:02)
Hors ligne
Avec ça, à titre d'exemple, j'ai générée et envoyé automatiquement sur l'internetosphère des déclinaisons d'un petit dessin simplet fait sous Processing.
http://www.completement.pt/exemple/
Hors ligne
Pratique d'avoir ça sous la main.
Merci !
Pour ce qui est de balise "code", elle ne prend pas les accents...
Je les ai enlevé et voilà...
Hors ligne
Merci ! C'est donc ça le truc pour les balises code.
Sinon, ça marche aussi avec du son!
Toujours avec Processing.py, ci-dessous, un programme qui permet de lancer l'enregistrement d'un son avec un microphone (touche 'r'), de cesser l'enregistrement (on rappuie sur 'r') puis de sauvegarder le fichier et de l'envoyer sur notre serveur (touche 's'); j'ai juste repris en Processing.py les exemples de la bibliothèque Minim…
C'est fait dans la perspective d'une installation interactive où les résultats générés par le dispositif serait archivés sur un site internet en quasi temps-réel, ou du moins automatiquement (bientôt j'espère des images du projet ).
EnvoieSonFtp.py
from ftplib import FTP add_library('minim') def setup(): size(300, 300) global minim, input, recorder global nom minim = Minim(this) input = minim.getLineIn() nom = str(day()) + str(month()) + str(hour()) + str(minute()) + ".wav" recorder = minim.createRecorder(input, nom) def draw(): background(0) if recorder.isRecording(): fill(0, 255, 0) println("enregistrement") else: fill(255) ellipse(width/2, height/2, 30, 30) envoi() delay(500) def envoi(): nom = str(day()) + str(month()) + str(hour()) + str(minute()) + str(second()) + ".png" def keyReleased(): if key == 'r': if recorder.isRecording(): recorder.endRecord() else: recorder.beginRecord() if key == 's': recorder.save() println("sauve") execfile('envoi.py') println("envoyeee")
N'oublions pas envoi.py pour la connexion et l'envoi de fichier sur le serveur :
# coding: utf8 host = "***" user = "***" password = "***" connect = FTP(host, user, password) etat = connect.getwelcome() print "etat connexion ftp ", etat rep = connect.dir() print rep file = open(nom, 'rb') connect.sendcmd('CWD www/exemple/son') connect.storbinary('STOR ' + nom, file) file.close() println("debug file close") connect.quit() println("\nTermine !")
On reprend un peu notre fichier .php pour afficher nos fichiers sonores fraichement enregistrés…
<p> <h2>Sons</h2> <?php $fichiers = glob('son/*.wav'); foreach($fichiers as $j){ echo "<audio controls>"; echo "<source src=\"" . $j . "\">" . "</audio>"; } ?> </p>
C'est perfectible: le format .wav n'est sans doute pas le plus approprié pour le web. On pourrait bidouiller un petit quelque chose pour convertir le fichier en .mp3/.oggavant de l'envoyer sur le web.
Fichiers en pièce jointe
Dernière modification par jojolaglaise (2016-01-19 21:43:06)
Hors ligne
Il ya bien logntemps j'ai utilisé des socket php en assyncrone pour pas avoir de blocage lors des discussions avec le serveur
en vrac c'est là
https://gitlab.com/Cdriko/1000LieuesP5/ … etwork.pde
Hors ligne
Pages: 1