Ca fait un petit moment que je n'ai posté sur ce blog car en fait je suis pas mal occupé ces derniers temps ...
J'ai notamment éfféctué un stage de 6 mois dans une entreprise à Los Angeles et ensuite je suis retourné à Belfort pour terminer mes études ...
Pendant mon stage à L.A nous (avec l'aide de mon collocataire) avons créé un blog racontent nos "périples" aux USA, alors
n'hésitez pas à y jeter un coup d'oeil :
http://la-discoverers.blogspot.com/
mardi 18 janvier 2011
jeudi 19 novembre 2009
Flex 3 and Actionscript 3 (as3), store, save an image (picture) in a database and use it after
I few times ago I had to develop a Flex/Air application which had to manage pictures and display them in a TileList component.
I had to store the images in a mysql Database and be able to display them after. I took a lot of time to find a good solution, so I'm posting this article maybe it can help others ....
Consequently, to store the images, first you have to let the user chose an image on his computer, here is the function for that :
private function browseForFile(event:MouseEvent):void
{
var file:File = new File();
file.addEventListener(Event.SELECT, file_select);
var imageFilter:FileFilter = new FileFilter("Images", "*.jpg;*.png;*jpeg");
file.browseForOpen("Select an image", [imageFilter]);
}
When the file is selected we load it :
private function file_select(evt:Event):void
{
var file:File = new File(File(evt.currentTarget).nativePath);
fileExtension = file.extension;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadPicture);
loader.load(new URLRequest(evt.target.url));
}
And when the file is loaded we encode it and save it in the database :
private function handleLoadPicture(event:Event):void
{
var loader:Loader = Loader(event.target.loader);
var image:Bitmap = Bitmap(loader.content);
var encoder:*;
if ( fileExtension == "jpg" || fileExtension == "jpeg" )
encoder = new JPEGEncoder();
else
encoder = new PNGEncoder();
var bytes:ByteArray = encoder.encode(image.bitmapData);
var imageBytes:String = Base64.encodeByteArray(bytes);
//here you can send your request to the DB to store the "imageBytes" String representing //the image
}
As you would notice before storing the image in the DB I encode the Bytes in Base 64 using a class that you can find here .
Now that the image is stored in the dabase we can load when wanted :
var img:Image = new Image();
img.load(Base64.decodeToByteArray(imageData));
//this.addChild(img);
In this code the "imageData" represents the Bytes string (containing the image's data) requested from the Database.
That's it !
I had to store the images in a mysql Database and be able to display them after. I took a lot of time to find a good solution, so I'm posting this article maybe it can help others ....
Consequently, to store the images, first you have to let the user chose an image on his computer, here is the function for that :
private function browseForFile(event:MouseEvent):void
{
var file:File = new File();
file.addEventListener(Event.SELECT, file_select);
var imageFilter:FileFilter = new FileFilter("Images", "*.jpg;*.png;*jpeg");
file.browseForOpen("Select an image", [imageFilter]);
}
When the file is selected we load it :
private function file_select(evt:Event):void
{
var file:File = new File(File(evt.currentTarget).nativePath);
fileExtension = file.extension;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadPicture);
loader.load(new URLRequest(evt.target.url));
}
And when the file is loaded we encode it and save it in the database :
private function handleLoadPicture(event:Event):void
{
var loader:Loader = Loader(event.target.loader);
var image:Bitmap = Bitmap(loader.content);
var encoder:*;
if ( fileExtension == "jpg" || fileExtension == "jpeg" )
encoder = new JPEGEncoder();
else
encoder = new PNGEncoder();
var bytes:ByteArray = encoder.encode(image.bitmapData);
var imageBytes:String = Base64.encodeByteArray(bytes);
//here you can send your request to the DB to store the "imageBytes" String representing //the image
}
As you would notice before storing the image in the DB I encode the Bytes in Base 64 using a class that you can find here .
Now that the image is stored in the dabase we can load when wanted :
var img:Image = new Image();
img.load(Base64.decodeToByteArray(imageData));
//this.addChild(img);
In this code the "imageData" represents the Bytes string (containing the image's data) requested from the Database.
That's it !
Libellés :
Internship
dimanche 5 juillet 2009
Exposé d'anglais : Est ce que les hommes seront toujours capable de battre des records ?
Je pense que le titre est assez évocateur, j'ai donc réalisé un exposé en anglais qui vise a répondre à la question suivante :
Libellés :
UTBM
Projet LO43 (UTBM) : Générateur de code LATEX pour les tableaux

L'UV LO43 évoque les principes de base et approfondis de la programmation orientée objet. Pour ce faire nous nous sommes basés sur les langages suivant : C++ et Java.
L'UV traite aussi de l'UML et des Design Pattern.
Afin d'appliquer toutes ces connaissances un projet a été réalisé, le but de ce dernier était de développer une application graphique en Java permettant de générer le code LATEX relatif à tableau.
Notre application peut aussi générer le PDF correspondant à votre tableau si LATEX est installé sur votre PC.
JAR contenant aussi les sources du projet.
Libellés :
UTBM
Projet IN42 (UTBM) Application en Flash : Apprentissage de l'anglais
En IN42 on apprend tout ce qui touche le multimédia ( vidéo, son, image, web, XHTML/CSS ...) et aussi Flash.
C'est pour illustrer nos connaissances sans Flash 8 que nous réalisé ce projet qui vise a apprendre les "bases" de l'anglais à un enfant âge de 5 à 10 ans.
Sources.
C'est pour illustrer nos connaissances sans Flash 8 que nous réalisé ce projet qui vise a apprendre les "bases" de l'anglais à un enfant âge de 5 à 10 ans.
Sources.
Libellés :
UTBM
Projet AG41 (UTBM) Problème de planification de tournées de véhicules
Me voila au second semestre d'étude à l'UTBM depuis que j'y suis rentré en septembre.
Pour ce second semestre j'ai notamment choisi l'UV AG41, cette dernière traite de l'optimisation et de la recherche opérationnelle.
On y apprend a trouver les meilleurs solutions pour des problèmes d'organisation en appliquant différentes techniques (simplex, programmation linéaire, programmation en nombres entier, algorithme de littel, algorithmes évolutionnistes, génétiques, tabou, recuit simulé ....).
Pour appliquer nos connaissances nous avons donc travaillé sur un projet de planification de tournées de véhicules avec fenêtres de temps, ce projet se base sur un algorithme évolutionniste qui donne des résultats satisfaisants.
PDF de description du projet.
ZIP contenant les sources et l'executable (lancer run.bat avec le fichier d'exemple R112.txt)
Pour ce second semestre j'ai notamment choisi l'UV AG41, cette dernière traite de l'optimisation et de la recherche opérationnelle.
On y apprend a trouver les meilleurs solutions pour des problèmes d'organisation en appliquant différentes techniques (simplex, programmation linéaire, programmation en nombres entier, algorithme de littel, algorithmes évolutionnistes, génétiques, tabou, recuit simulé ....).
Pour appliquer nos connaissances nous avons donc travaillé sur un projet de planification de tournées de véhicules avec fenêtres de temps, ce projet se base sur un algorithme évolutionniste qui donne des résultats satisfaisants.
PDF de description du projet.
ZIP contenant les sources et l'executable (lancer run.bat avec le fichier d'exemple R112.txt)
Libellés :
UTBM
samedi 21 mars 2009
Virtualbox et Fedora 10, activer fullscreen
Dernièrement, j'ai installé Fedora 10 sur machine virtuelle grâce au logiciel VirtualBox.
Ce dernier, disponible aussi bien sous GNU/Linux que Windows permet de faire tourner deux OS concurrents sur une même machine en partageant les ressources.
Ayant donc installé Fedora 10, sur le système de base Windows Vista, je me suis rendu compte que je n'avais pas "l'intégration de la souris" et "l'adaptation de la machine virtuelle à la résolution de la machine hôte" d'activé, pour activer ces options il faut installer les VirtualBox Guest Additions, disponible içi http://download.virtualbox.org/virtualbox/.
Après avoir installé les Guest Additions vous vous rendrez surement compte que l'intégration du pointeur fonctionne un peu près, mais pas le changement de résolution et donc le fullscreen.
Pour remédier à ce problème faites les manips suivantes
(dans un Terminal) :
Xorg -configure :1
cp /root/xorg.conf.new /etc/X11/xorg.conf
reboot
Et voila ca devrait marcher maintenant (fullscreen et résolution élevée avec Fedora 10) !
:-)
Ce dernier, disponible aussi bien sous GNU/Linux que Windows permet de faire tourner deux OS concurrents sur une même machine en partageant les ressources.
Ayant donc installé Fedora 10, sur le système de base Windows Vista, je me suis rendu compte que je n'avais pas "l'intégration de la souris" et "l'adaptation de la machine virtuelle à la résolution de la machine hôte" d'activé, pour activer ces options il faut installer les VirtualBox Guest Additions, disponible içi http://download.virtualbox.org/virtualbox/.
Après avoir installé les Guest Additions vous vous rendrez surement compte que l'intégration du pointeur fonctionne un peu près, mais pas le changement de résolution et donc le fullscreen.
Pour remédier à ce problème faites les manips suivantes
(dans un Terminal) :
Xorg -configure :1
cp /root/xorg.conf.new /etc/X11/xorg.conf
reboot
Et voila ca devrait marcher maintenant (fullscreen et résolution élevée avec Fedora 10) !
:-)
Libellés :
Actu perso