Vous aimez les gif animés ?
Aujourd’hui, voici une petite application (à télécharger pour Mac en bas de cette article) pour transformer votre webcam en machine à gif, le tout en Processing !
Mode d’emploi : clic gauche pour ajouter une image, clic droit pour enregistrer, le fichier est créé dans le répertoire de l’application avec comme nom « l’heure » .gif, et on peut en refaire un en cliquant de nouveau.
Si vous voulez l’améliorer, il faut installer cette librairie dans votre Processing.
Les sources sont livrées dans le zip.
import processing.video.*;
import gifAnimation.*;
Capture myCapture;
GifMaker gifExport;
boolean ready;
String name;
Gif last;
void setup() {
ready=true;
background(0);
size(320, 240);
frameRate(25);
myCapture = new Capture(this, 320, 240, 30);
bw_start();
}
void bw_start() {
int s = second();
int m = minute();
int h = hour();
name = nf(h, 2)+"_"+nf(m, 2)+"_"+nf(s, 2)+".gif";
gifExport = new GifMaker(this, name, 0);
gifExport.setRepeat(0);
}
void captureEvent(Capture myCapture) {
myCapture.read();
}
void draw() {
if (ready) {
image(myCapture, 0, 0);
}
else {
PFont geneva = createFont("geneva", 9, false);
textFont(geneva, 9);
image(last, 0, 0);
text("Gif My Cam!\n-- result --\nclick to create again", 20, 20);
}
}
void mousePressed() {
if (ready) {
if (mouseButton== LEFT) {
gifExport.setSize(320, 240);
gifExport.setDelay(70);
gifExport.addFrame();
}
if (mouseButton== RIGHT) {
ready=false;
gifExport.finish();
last = new Gif(this, name);
last.play();
}
}
else {
ready=true;
bw_start();
}
}
Aujourd’hui, je vais vous présenter une petite librairie pour Processing, SQLibrary.
Cette librairie permet de connecter Processing et MySQL, je détaille peu, il s’agit d’un retour d’expérience personnelle que je partage pour les utilisateurs francophones.
Lancer MAMP :)
Premier exemple,ajouter dans une BDD.
import de.bezier.data.sql.*;
MySQL msql;
String nom,prenom;
int age;
/* dans phpMyAdmin :
CREATE TABLE IF NOT EXISTS `stu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`prenom` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
*/
void setup() {
msql = new MySQL( this, "localhost:8889", "esad", "root", "root" );
if ( msql.connect() )
{
nom="bond";
prenom="james";
age=17;
msql.execute("INSERT INTO stu (nom,prenom,age) VALUES ('"+nom+"','"+prenom+"',"+age+")");
}
}
Ce second exemple permet d’avoir le prochain ID (auto-incrementé) :
import de.bezier.data.sql.*;
MySQL msql;
void setup() {
msql = new MySQL( this, "localhost:8889", "esad", "root", "root" );
if ( msql.connect() )
{
msql.query( "SHOW TABLE STATUS LIKE 'students'" );
msql.next();
println(msql.getInt("Auto_increment"));
}
}
en php
$query = "SHOW TABLE STATUS LIKE '$tablename'";
$result = mysql_query($query) ;
$row = mysql_fetch_assoc($result);
echo $row['Auto_increment'];
Voilà pour ce court épisode du jour, d’autres exemples sont fournis avec la librairie.