begin process at 2012 05 27 15:40:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DIAPORAMA D'IMAGES JPEG AVEC UNE LISTE CHAINÉE SOUS BORLAND

DIAPORAMA D'IMAGES JPEG AVEC UNE LISTE CHAINÉE SOUS BORLAND


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :diaporama, jpeg, borland, slideshow, jpg Niveau :Débutant Date de création :16/10/2005 Vu / téléchargé :11 977 / 1 002

Auteur : alexis779

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Le programme, testé sour borland c++ builder 4, affiche un diaporama d'images de format jpeg en utilisant une liste chainée.
Deux boutons permettent de faire défiler les images dans les deux sens.
Pour pointer les images, le programme lit dans un fichier "images.txt" qui répertorie les images contenues dans un dossier "images".
C'est surtout l'affichage d'une image sous borland, l'utilisation de la liste et la lecture d'un fichier qui sont intéressantes.

Source

  • //---------------------------------------------------------------------------
  • #include <vcl.h>
  • #pragma hdrstop
  • #include "BaseDeDonnees.h"
  • //---------------------------------------------------------------------------
  • #pragma package(smart_init)
  • #pragma resource "*.dfm"
  • #include <iostream>
  • #include <fstream>
  • #include <string>
  • using namespace std;
  • /*
  • Chemin du fichier contenant les images JPEG à afficher
  • Sur mon ordinateur, c'était le dossier "images" contenu dans le répertoire courant.
  • Mettre exclusivement dans ce dossier des images au format JPEG.
  • */
  • String cheminDesImages = "images\\" ;
  • /*
  • Exemple de fichier de données :
  • --- Début du fichier
  • batteur.JPG
  • chanteur_guitarre.JPG
  • classique.jpg
  • --- Fin du fichier
  • */
  • string nomfichier = "images.txt" ;
  • TForm1 *Form1;
  • //---------------------------------------------------------------------------
  • __fastcall TForm1::TForm1(TComponent* Owner)
  • : TForm(Owner)
  • {
  • ouvrirFichier() ;
  • afficherImage(noeud) ;
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm1::Button1Click(TObject *Sender)
  • {
  • noeud = noeud->fils ;
  • if (noeud == NULL)
  • noeud = liste ;
  • afficherImage(noeud) ;
  • }
  • //---------------------------------------------------------------------------
  • void __fastcall TForm1::Button2Click(TObject *Sender)
  • {
  • if (noeud->pere == NULL)
  • {
  • while(noeud->fils != NULL)
  • noeud = noeud->fils ;
  • } else
  • noeud = noeud->pere ;
  • afficherImage(noeud) ;
  • }
  • //---------------------------------------------------------------------------
  • void TForm1::ouvrirFichier()
  • {
  • char c ;
  • String phrase = "" ;
  • liste = new chaine ;
  • liste->pere = NULL ;
  • liste->fils = NULL ;
  • ifstream f(nomfichier.c_str(),ios::in);
  • if(f)
  • {
  • while (f)
  • {
  • c = f.get();
  • if (c == '\n')
  • {
  • inserer(phrase, &liste, NULL) ;
  • phrase = "" ;
  • }
  • else
  • phrase += c ;
  • }
  • f.close();
  • }
  • liste = liste->fils ;
  • liste->pere = NULL ;
  • noeud = liste ;
  • Memo1->Clear() ;
  • afficher(liste) ;
  • }
  • void TForm1::afficher(refchaine liste)
  • {
  • if (liste != NULL)
  • {
  • Memo1->Lines->Add(liste->nom) ;
  • afficher(liste->fils) ;
  • }
  • }
  • void TForm1::inserer(String nom, refchaine* noeud, refchaine* pere)
  • {
  • if (*noeud != NULL)
  • inserer(nom, &((*noeud)->fils), noeud) ;
  • else
  • {
  • *noeud = new chaine ;
  • (*noeud)->nom = nom ;
  • (*noeud)->pere = *pere ;
  • (*pere)->fils = *noeud ;
  • (*noeud)->fils = NULL ;
  • }
  • }
  • void TForm1::afficherImage(refchaine noeud)
  • {
  • String nom = noeud->nom ;
  • // Le format d'image supporté est uniquement le JPEG
  • TJPEGImage *jpg = new TJPEGImage ;
  • jpg->LoadFromFile(cheminDesImages + nom) ;
  • int largeurImage = Screen->Width / 2 ;
  • int hauteurImage = Screen->Height / 2 ;
  • // subterfuge pour remplir complétement la zone de l'image si le fichier source a des dimensions plus petites
  • int largeurRectangle = (largeurImage > jpg->Width) ? largeurImage : jpg->Width ;
  • int hauteurRectangle = (hauteurImage > jpg->Height) ? largeurImage : jpg->Height ;
  • TRect *rect = new TRect(0,0,largeurRectangle, hauteurRectangle) ;
  • Image1->Width = largeurImage ;
  • Image1->Height = hauteurImage ;
  • Image1->Canvas->StretchDraw(*rect, jpg) ;
  • }
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "BaseDeDonnees.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

        /*
                Chemin du fichier contenant les images JPEG à afficher
                Sur mon ordinateur, c'était le dossier "images" contenu dans le répertoire courant.
                Mettre exclusivement dans ce dossier des images au format JPEG.
        */
        String cheminDesImages = "images\\" ;

        /*
                Exemple de fichier de données :

--- Début du fichier
batteur.JPG
chanteur_guitarre.JPG
classique.jpg
--- Fin du fichier

        */
        string nomfichier = "images.txt" ;


TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        ouvrirFichier() ;
        afficherImage(noeud) ;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        noeud = noeud->fils ;
        if (noeud == NULL)
                noeud = liste ;
        afficherImage(noeud) ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
        if (noeud->pere == NULL)
        {
                while(noeud->fils != NULL)
                        noeud = noeud->fils ;
        } else
                noeud = noeud->pere ;

        afficherImage(noeud) ;

}
//---------------------------------------------------------------------------


void TForm1::ouvrirFichier()
{
        char c ;
        String phrase = "" ;

        liste = new chaine ;
        liste->pere = NULL ;
        liste->fils = NULL ;

        ifstream f(nomfichier.c_str(),ios::in);
        if(f)
        {
                while (f)
                {
                        c = f.get();
                        if (c == '\n')
                        {
                                inserer(phrase, &liste, NULL) ;
                                phrase = "" ;
                        }
                        else
                                phrase += c ;
                }
                f.close();
        }
        liste = liste->fils ;
        liste->pere = NULL ;
        noeud = liste ;
        Memo1->Clear() ;
        afficher(liste) ;

}

void TForm1::afficher(refchaine liste)
{
        if (liste != NULL)
        {
                Memo1->Lines->Add(liste->nom) ;
                afficher(liste->fils) ;
        }
}

void TForm1::inserer(String nom, refchaine* noeud, refchaine* pere)
{
        if (*noeud != NULL)
                inserer(nom, &((*noeud)->fils), noeud) ;
        else
        {
              *noeud = new chaine ;
              (*noeud)->nom = nom ;
              (*noeud)->pere = *pere ;
              (*pere)->fils = *noeud ;
              (*noeud)->fils = NULL ;
        }
}

void TForm1::afficherImage(refchaine noeud)
{
        String nom = noeud->nom ;
        // Le format d'image supporté est uniquement le JPEG
        TJPEGImage *jpg = new TJPEGImage ;

        jpg->LoadFromFile(cheminDesImages + nom) ;

        int largeurImage = Screen->Width / 2 ;
        int hauteurImage = Screen->Height / 2 ;
        // subterfuge pour remplir complétement la zone de l'image si le fichier source a des dimensions plus petites
        int largeurRectangle = (largeurImage > jpg->Width) ? largeurImage :  jpg->Width ;
        int hauteurRectangle = (hauteurImage > jpg->Height) ? largeurImage : jpg->Height ;
        TRect *rect = new TRect(0,0,largeurRectangle, hauteurRectangle) ;
        Image1->Width = largeurImage ;
        Image1->Height = hauteurImage ;
        Image1->Canvas->StretchDraw(*rect, jpg) ;
}

 Conclusion

Le programme n'affiche que des images Jpeg.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture PLANNING D'EQUIPE par grephit
Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi

 Sources en rapport avec celle ci

Source avec Zip MATRICE ZIGZAG par Mjj_Yuna
Source avec Zip SOLO OLELOADPICTURE par f_l_a_s_h_b_a_c_k
Source avec Zip Source avec une capture [WIN32][C][DEV-C++] IMPSCREEN IMPRIME ECRAN PAR HOOK SANS DL... par omnia
Source avec Zip IMAGES JPG ET GIF SANS LIBRAIRIE EXTERNE (WIN32) par vecchio56
Source avec Zip Source avec une capture BMP -> JPEG (JPG) PAR LIBRAIRIE FREEIMAGE ET DEV-C++ par yoyo269

Commentaires et avis

Commentaire de poppyto le 17/10/2005 04:15:50 administrateur CS

C'est pas mal mais le fichier texte ne sert à rien (autant parcourir les répertoire non ?), je ne parle même pas de la liste chaînée (inutile ici aussi).

Commentaire de Cardinali le 29/07/2006 21:04:07

Il faut noter que les recherches sont difficiles car il y a trop de publicité et on ne se retrouve plus à un moment donné

Commentaire de Tiftif01 le 03/12/2009 15:56:14

lors de la compilation, il me dit qu'il y'a un header manquant : vcl.h. Que dois-je faire? vc1.H fait-il partie de la librairie GTK+?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

code d'impression d'un jpeg avec borland c++ builder 6 ? [ par Miners ] Bonjour,Est-ce que quelqu'un connaîtrait un code source pour pouvoir imprimer un jpeg. Le problème est que la classe TJPEG n'a pas de canvas, alors fa Decompression jpeg [ par turnerom ] Bonjour,je cherche un code ou une bibliothèque en C++ qui soit compatible Windows et Linux et qui permette de décompresser le jpeg (vers du bmp ou du comment afficher un jpeg (lib freeimage) dans un dialogue ???? [ par gege1024 ] j'arrive&nbsp;&#224; travailler sur les jpg, chargement - sauvegarde mais pas &#224; afficher un jpeg dans un dialogue comme avec&nbsp;:bit= (HBITMAP) BMP to JPEG [ par lektrosonic ] Bonjour, Enfait je souhaite envoyer des HBITMAP en reseaux. L'ideal est biensur de transofrmer en JPEG avant d'envoyer. Mais je ne veux pas ecrire le dialogue de progression Borland C++ [ par parabole ] Bonjour , Sous Borland C++ , Je souhaiterai faire un dialogue simple de progression . Il s'ouvre pendant une autre tache en fond . J'utilise actuelle borland builder c++ 5.02 et windows 7 64bit [ par anarchyst14 ] Bonjour je suis étudiant en 2eme année de bts et dans le cadre de mon projet,je doit utilisé le logiciel borland C++ 5.02 pour programmer du code et l [Recherche] Programmeur c++ (SawgeniuS) [ par akfrlindsay ] [center][img]http://2.bp.blogspot.com/-52RSSo3nJOk/TZ-2dTHzMvI/AAAAAAAAAAk/NwgOKWpQTSQ/s1600/logo-banniere.png[/img][/center] SawgeniuS is 3D MMORPG programmation borland c++ visual [ par aminamoi ] salut! je suis entrain d'executé un projet avec le borland c++ builder 6 j'ai installer vcl skin mais je recoit cette erreur [C++ Error] datawarehous Ouvrir un fichier JPEG [ par gamers84 ] Salut a tous Je voudrais creer un programme en C permetant au utilisteur d'ouvrir un image jpeg mais je ne sait pas comment ouvir l'image a aprtir du DCMTK [ par Mercusyo ] Bonjour, Je ne sais pas si mon post est bien mis au bon endroit. Voilà, je souhaiterais incorporer l'ensemble des librairies de DCMTK (pour DICOM Too


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales