Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2016-01-18 15:34:27 Envoyer des images générées par Processing sur un serveur FTP

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Envoyer des images générées par Processing sur un serveur FTP



Hello smile

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.

Code (java) :

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 ! :-)

Code (html) :

<!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…

Code (java) :

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

 

#2 2016-01-18 17:43:33 Re : Envoyer des images générées par Processing sur un serveur FTP

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Envoyer des images générées par Processing sur un serveur FTP



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

 

#3 2016-01-19 12:40:18 Re : Envoyer des images générées par Processing sur un serveur FTP

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Envoyer des images générées par Processing sur un serveur FTP



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à... smile


L'Amour au Peuple !

Hors ligne

 

#4 2016-01-19 21:10:05 Re : Envoyer des images générées par Processing sur un serveur FTP

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Envoyer des images générées par Processing sur un serveur FTP



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 cool).

EnvoieSonFtp.py

Code (python) :

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 :

Code (python) :

# 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…

Code (html) :

<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 cool

Dernière modification par jojolaglaise (2016-01-19 21:43:06)

Hors ligne

 

#5 2016-02-24 14:10:30 Re : Envoyer des images générées par Processing sur un serveur FTP

cdriko
modérateur
Lieu: Le Landreau
Date d'inscription: 2010-07-16
Messages: 76
Site web

Re: Envoyer des images générées par Processing sur un serveur FTP



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024