C/C++

3D Img - Convertion d'une image Bitmap en 3D

3D Img est un programme qui permet de convertir, ou plutôt transformer une image au format RAW en niveau de gris (512*512) en une image en relief. En effet, une image peu être assimilée a un plan (2 dimensions) possédant un certain nombre de points (ici 512*512 = 262144 points). Chacun de ces points possèdent un attribut : une couleur (0 étant le noir et 255 le blanc).

Maintenant, en supposant que la couleur représente la profondeur dans un espace a 3 dimensions, on peut donc convertir une image 2D en un model 3D. Chaque pixel de couleur noire sera le plus éloigné de l'observateur, inversement, chaque pixel de couleur blanche sera le plus rapproché de l'observateur.

3dimg1.jpg

3dimg2.jpg

3dimg3.jpg

Il est possible d'ajuster l'angle de vision, la précision de l'affichage et le facteur du relief.

Fichier attachéTaille
3dimg_v1_binary.zip228.85 Ko
3dimg_v1_source.zip10.03 Ko

3D Img 2 - 3D Img en mieux

Le voici, le voila ! 3DImg Version 2, mais en OpenGL cette fois. La première version est toujours disponible ici. Le format d'image d'entrée est différent aussi, il ne s'agit plus du format RAW mais du format BMP et plus précisément des images BMP de résolution 256*256 en 24 bits codées RGB, le format Windows quoi...

3dimg2_4.jpg

Les rotations et zooms ce font directement avec la souris sur la fenêtre, plus pratique. Le changement de coefficient de profondeur ce fait a l'aide des touches "+" et "-" du clavier.

3dimg2_0.jpg

3dimg2_1.jpg

Autre modif, la couleur ! Trop triste le monochrome, et de toute façon c'est dépassé Smiling

3dimg2_2.jpg

Les images sont passé en argument lors de l'exécution du programme, en premier on passe l'image elle même et en second il est possible de passer une image "masque" utilisée pour la profondeur afin de corriger certains bugs d'affichage.

Fichier attachéTaille
3dimg2_binary.zip352.59 Ko
3dimg2_source.zip6.62 Ko

At - Test Direct Draw

Voici un petit exemple d'utilisation des fonctions de bases de Direct Draw.

arob.jpg

Fichier attachéTaille
at_binary.zip214.46 Ko
at_source.zip144.53 Ko

Bo-Print - Ou l'art du partage universel d'imprimante

Avant tous, voici la petite histoire de ce programme. Un beau jour je décide d'acheter une nouvelle imprimante, j'opte pour le model DeskJet 722C de Hewlett Packard. Oui je sais ça date déjà ! J'avais même pas de réseaux chez moi a l'époque ! Et c'est justement la le problème !!! Environ un an après l'achat de l'imprimante je branchais une jolie p'tite carte réseau dans mon PC, et c'est a ce moment la que je me suis rendu compte que ma chère imprimante ne supportait pas le partage en réseau... Qu'a cela ne tienne ! Bo-Print est né ! Ce programme permet de partager en réseau une imprimante non-partageable en réseau ! paradoxal...

Prenons un exemple, un réseau de 3 PC, PC1, PC2 et PC3. Sur le PC1 est connecté l'imprimante. Sur chaque PC est installé le pilote de l'imprimante. La particularité est que sur les PC2 et PC3 le pilote est parametré en mode "imprimer dans un fichier" et sur le PC1 Bo-Print est lancé.

Bo-Print ce charge de lire dans un répertoire spécifique des PC2 et 3 a intervalles régulier. Lorsque quelqu'un imprime un document depuis le PC2 ou 3, il imprime ce dernier dans un fichier qu'il vas stocker dans le répertoire partagé. Bo-Print le détecte, l'envoie sur l'imprimante, et le tour est joué ! L'imprimante est partagée.

bp2.jpg

bp3.jpg

bp1.jpg

Fichier attachéTaille
boprint_binary.zip196.18 Ko
boprint_source.zip72.59 Ko

Core - Bidouille de sprites

Une sphère animée de sprites...

core.jpg

Fichier attachéTaille
core_binary.zip201.01 Ko
core_source.zip8.66 Ko

Démo Twain - Utiliser facilement un périphérique Twain

Un bon moyen d'accéder à vos périphériques compatible "TWAIN", faire des captures d'images avec une webcam ou scanner un document. Cette démo montre comment utiliser "EZTWAIN" sur le compilateur Borland C++ Builder 3.0.

twain.jpg

Pour plus d'informations au sujet de TWAIN, voici quelques liens :

Fichier attachéTaille
twain_binary.zip486.68 Ko
twain_source.zip88.47 Ko

Désplitteur - Agrégation de fichiers

Une démonstration du programme ZOB et d'affichage d'objet aux format ASE.

dem3.jpg

"ZOB" est un format de fichier permettant de regrouper plusieurs fichiers en un seul, mais non compressé.

Fichier attachéTaille
zob_binary.zip32.63 Ko
zob_demo.zip261.79 Ko
zob_source.zip238.34 Ko

EF - Convertisseur francs-euros et euros-francs

Ce petit programme est un convertisseur francs <-> euros. Il suffit d'entrer le montant a convertir dans la case respective à la devise employée, et le montant converti apparaît en temps réel dans l'autre case.

ef.jpg

Fichier attachéTaille
ef_binary.zip115.53 Ko
ef_source.zip5.08 Ko

GetLeft - Copie de fichiers

GetLeft, Comme le célèbre "GetRight" permet de télécharger des fichiers, mais depuis un réseau local ou même directement en local. Il dispose des fonctions identiques ; contrôle de la bande passante, arrêt et reprise du téléchargement.

Il peut être utile lors de "LAN party" quand vous commencer a pomper une grosse vidéo sur une autre machine et que son propriétaire vous "kick" lamentablement avec "NetWatch". GetLeft s'en fout Eye-wink

getleft1.jpg

Fichier attachéTaille
getleft_binary.zip149.38 Ko
getleft_source.zip5.9 Ko

PoBoot - Reboot or not reboot ?

Hum ! Ca c'est le jour ou j'ai découvert les API Win32. PoBoot permet simplement d'éteindre ou de redémarrer votre ordinateur. Inutile mais indispensable !

fb1.jpg

Le voici a l'oeuvre, il reste 1.20 secondes avant que l'ordinateur redémarre !

fb2.jpg

Fichier attachéTaille
fb_binary.zip135.35 Ko
fb_source.zip6.53 Ko

Propengl - Utilisation de fmod.dll (entre autre)

Cette petite démo met en oeuvre quelques trucs que j'ai développé. Une lib de gestion de sprites vue précédement (star & core), un format de fichier (désplitteur) ainsi que l'utilisation d'une lib qui n'est pas de moi (fmod).

demo1.jpg

Fichier attachéTaille
propengl_binary.zip2.19 Mo
propengl_source.zip129.47 Ko

SIP (Système Intégré de Production)

Le projet SIP (Système Intégré de Production) représente 6 mois de travail dans le cadre de l'examen final du BTS Informatique Industrielle. Ce projet est réparti en 3 parties distinctes : Secrétaire, Supervision et Passerelles. L'ensemble est décrit dans les différents dossiers publiés sur le site. La partie dont je fut chargé est la seule actuellement disponible, la partie supervision.

Voici quelques captures d'écran de l'application :

sip1.jpg

sip2.jpg

sip3.jpg

sip4.jpg

sip5.jpg

INFORMATION IMPORTANTE :
========================

Vu le nombre de téléchargement de l'image nero, il est important pour vous de comprendre que ce projet NE CONCERNE EN RIEN le protocole SIP (Session Initiation Protocol) lié à la VoIP. Il s'agit d'un projet de fin d'étude appelé S.I.P. (Système Intégré de Production).

Merci d'avance, sauvez ma bande passante Eye-wink

Fichier attachéTaille
sip_binary.zip893.59 Ko
sip_install.zip1.31 Mo
sip_source.zip349.45 Ko
20_CP_CIM2001_V1.pdf39.8 Ko
30_CD_CIM2001_V1.pdf234.84 Ko
40_AN_CIM2001_V1.pdf947.46 Ko
50_TU_CIM2001_V1.pdf35.45 Ko
60_TI_CIM2001_V1.pdf8.24 Ko
70_JB_CIM2001_V1.pdf17.08 Ko
80_MI_CIM2001_V1.pdf144.77 Ko
90_MU_CIM2001_V1.pdf68.3 Ko
SIP_2001.nrg372.55 Mo

Star - Une galaxie

Ca tourne et ça scintille.

star.jpg

Fichier attachéTaille
star_binary.zip200.58 Ko
star_source.zip8.33 Ko

Th-X - Thermomètre pour PC

Th-X est un programme axé domotique, il permet de transformer votre PC en thermomètre. Sont principe de fonctionnement sera expliqué plus tard.

thx1.jpg

Th-X peut gérer simultanément 4 sondes thermiques.

thx5.jpg

Les valeurs de températures sont enregistrées dans un fichier a intervalles réguliers et peuvent être convertie au format Microsoft Excel pour des traitements évolués.

thx2.jpg

Il est possible de déterminer des seuils et des couleurs d'affichage.

thx3.jpg

Chaque sonde est paramétrable ; nom, commentaires, filtrage, port, calibrage et valeurs minimum et maximum.

thx4.jpg

Avant tout, je dois remercier l'équipe de PC Team et plus particulièrement Patrick B. et Thierry G. pour leur article "Votre processeur a-t-il de la fièvre ?" paru dans le PC Team n°27. En effet, dans cet article, ils proposaient un montage électronique se connectant au port joystick d'un PC. Ce dernier permettait alors, par l'intermédiaire d'un petit programme, de relever des températures.

thx_joy.gif

Le matériel:

  • Un connecteur DB15 mâle. (port joystick)
  • 1 a 4 Thermistances CTN de 100 KOhm.
  • Du fil électrique (récupération)
  • Du vernis a ongle (ou autre isolant)
  • Matériel de soudage (fer, étain...)

Pour les thermistances, personnellement j'ai pris des CTN de 68 KOhms, c'est moins précis, mais on en trouve plus facilement dans le commerce.

Résultat:

thx_conec.jpg

thx_sonde.jpg

C'est quoi une "thermistance" ?:

C'est une résistance qui varie en fonction de la température. Simple ? non ?

CTN : Coefficient de Température Négatif. Ceci signifie que la résistance de notre chère thermistance augmente lorsque la température diminue. De plus, celle-ci a une réponse de logarithmique... Jugez vous même !

thx_g1.jpg

thx_g2.jpg

Le port joystick:

thx_mon1.jpg

Voici un schéma représentant une partie de l'interface joystick (interne au PC) et la partie supérieur, représente le connecteur et une sonde.

Pour réaliser une acquisition:

1 - L'interrupteur K se ferme, court-circuite le condensateur C, donc il se décharge.
2 - L'interrupteur K s'ouvre, le circuit RC est maintenant actif. La charge du condensateur se fait a travers les résistances R et Rth.
3 - Lorsque le condensateur a atteint un niveau de charge supérieur ou égal a Vref, la sortie S du comparateur est déclenchée.

Il reste maintenant a déterminer le temps de charge du condensateur, ceci nous permettra alors de connaitre la valeur de la résistance et ainsi la température correspondante.

La sortie S du comparateur, active ou désactive un monostable. Celui-ci commence a compter a partir du moment ou l'interrupteur K s'ouvre, (il a finit de court-circuiter le condensateur) jusqu'a ce que S soit validé. On a alors un nombre d'impulsions comptée, ce nombre est image du temps de charge du condensateur et aussi image de la température. C'est cette valeur numérique qu'il va falloir lire sur le port joystick.

La lecture de cette valeur est effectuée en langage assembleur. Il faut ensuite convertir "la valeur numérique image" en température.

Fichier attachéTaille
thx_binary.zip178.5 Ko
thx_source.zip103.54 Ko

Vroum - La bagnole de l'espace

Un pseudo jeu de voiture, [HAUT] pour avancer et [BAS] pour freiner... (non, il n'y à pas de volant, la route est droite !). J'ai fait ce petit prog lors de mon dernier jour de stage à Integral Media, simple petit défit avec un collègue : "faire un jeu en moins de 3 heures !". C'est nul je sais, mais l'interactivitée est tout de même présente (lol).

vroum.jpg

Fichier attachéTaille
vroum_binary.zip322.85 Ko
vroum_source.zip34.32 Ko

YoMan - Alpha-blend

Un essai sur le blending.

yoman.jpg

Fichier attachéTaille
yoman_binary.zip56.88 Ko
yoman_source.zip6.44 Ko

CV - Curriculum Vitae

Mon Curriculum Vitae multimédia en DirectX

Attention, Cette application utilise Microsoft DirectX 8.0 minimum. Pour télécharger la dernière version de DirectX, rendez-vous sur la Microsoft DirectX Home Page.

Si vous ne connaissez pas votre version actuelle de DirectX, suivez cette procédure pour le vérifier :

Cliquez sur "Démarrer" puis "Exécuter" et tapez alors "dxdiag".
Validez par "Entrée".
Votre version de DirectX sera affichée sur le premier panneau.

cv_bonvga_d3d.jpg

Par ailleurs, vous pouvez aussi consulter mon C.V. Online en cliquant ici.

Fichier attachéTaille
source_cv_bonvga.zip4.48 Mo
cv.exe498.5 Ko