processing #9 : cadeau !

27 septembre 2011 | graphisme | 0 commentaire

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();
  }
}

gif_my_cam.zip

pour toi jeune graphiste

27 septembre 2011 | graphisme | 0 commentaire

Quand Wim Crouwel s’exprime, je n’ai rien à ajouter !
http://fr.phaidon.com/agenda/design/video/
merci Pierre :)

alphabet 2 & 1

25 septembre 2011 | graphisme | 0 commentaire

The Alphabet 2

et le 1… vu il y a 8 mois :)

The Alphabet

selfcontrolfreak

25 septembre 2011 | graphisme | 0 commentaire

Bel exercice !
http://selfcontrolfreak.com/

processing #8 : SQLibrary

22 septembre 2011 | programmation, tutorials | 0 commentaire

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.

je veux le même

22 septembre 2011 | musique | 0 commentaire

… shampoing que lui ?

Marco Tempest

21 septembre 2011 | graphisme, programmation | 0 commentaire

La magie de la vérité, des mensonges… et des iPods.

mamp

12 septembre 2011 | programmation | 0 commentaire

Si quelqu’un connaît Monsieur Mamp…

Host localhost
Port 3306 // je veux bien mais c’est 8889 dans les préférences
User root
Password root

Et dans le php.ini

display_errors = Off

C’est pas sympa pour les newbies ;¬) on basculera en display_errors = On (pomme + s, relancer Mamp)