I. Gestion d`images

publicité
CALMELS Ivan
LAGANE Loïc
TREY Fabrice
LPD2I 2003-2004
Projet ASP.NET
FILAP
(Fabrice Ivan Loïc Album Photo)
Projet Tuteuré LPD2I
07/06/2017
SOMMAIRE
Définition du projet .................................................................................................................. 2
Etat de l’Art .............................................................................................................................. 2
I. Gestion d’images ............................................................................................................ 2
A. Stockage ..................................................................................................................... 3
B. Réutilisation ............................................................................................................... 3
II. Les bases de données multimédias ................................................................................. 5
A. Définition .................................................................................................................... 5
B. Représentation des images ......................................................................................... 5
III. Les bases de données « classiques » .............................................................................. 6
A. Définition .................................................................................................................... 6
B. Représentations des images ....................................................................................... 7
IV. Etude des logiciels de gestion de bases de données image ............................................ 7
Traitement du sujet .................................................................................................................. 9
I. Le besoin ........................................................................................................................ 9
II. Modélisation d’une image ............................................................................................ 10
III. L’analyse : le modèle choisi ......................................................................................... 11
IV. Exemples : instances issues du modèle ........................................................................ 12
Réalisation ............................................................................................................................... 15
I. Problématique............................................................................................................... 16
II. Technologies existantes – Choix techniques ................................................................ 16
III. Mise en place de la plate-forme de développement ..................................................... 17
IV. Structure de la base ...................................................................................................... 18
V. Elaboration du site ........................................................................................................ 20
A. Fonctionnalités du site ............................................................................................. 20
B. Analyse critique ........................................................................................................ 31
Conclusion ............................................................................................................................... 33
Annexes ................................................................................................................................... 34
Définition du projet
Le projet à concevoir est la réalisation d’une application Web de gestion d’images. Le
sujet à traiter est le stockage, la gestion et le traitement d’images mais aussi toute une
partie d’étude du sujet et des technologies pouvant y être associées.
Il a fallu dans un premier temps définir une image et voir aussi les diverses
technologies existantes pour gérer ces images. Une fois cette approche du projet
réalisée, nous nous sommes donc concentrés sur les technologies adéquates pour
mener à terme ce projet. Ensuite, nous avons défini le modèle de données et élaboré
cette application avec les choix que nous avions fait.
Etat de l’Art
I. Gestion d’images
IUT de RODEZ
Page 2
Projet Tuteuré LPD2I
07/06/2017
A. Stockage

Du chemin :
Une première méthode pour stocker une image est d’enregistrer le chemin (relatif,
absolu, distant, ...) de l'image dans la base de données comme chaîne de caractère.
Cette méthode est toute simple, il suffit d’enregistrer les images dans un répertoire, et
grâce à l’adresse stockée on utilise la balise <IMG> qui permettra son affichage.

Sous forme binaire :
Avant toute chose, il faut savoir qu'il est déconseillé de stocker des images dans une
base de données. C'est très lourd et cela peut même ralentir le serveur de données. Il
ne faut pas perdre de vue que le but premier d'une base de données est de stocker des
données à des fins de recherches, d'indexages ou de calculs. Ce qui n'a absolument
aucune application dans le cas d'images. Cela vaut pour tout les types de base de
données (Oracle, SQL Server, ...). Sous SQL Server, il s’agit d’un type BLOB. Le
principe général est de transformer l’image en binaire et de la stocker grâce à la
méthode Parameters.add.
B. Réutilisation
1. Filtrage :
L’accès à certaines images peut se faire par l’intermédiaire d’une recherche sur le
contenu d’une image. Des méthodes de reconnaissance par similarité ou par analyse
des formes sont utilisées mais très difficile à mettre en œuvre. Le contenu peut être
plus facilement défini par des mots-clés, des catégories, etc. L’application de filtres de
ce type permet d’affiner le résultat de la requête.
2. Visualisation :

Résolution d'une image :
Une image est divisée en points ou pixels. Considérons une image de 10 cm sur 10 cm
avec une résolution très faible de 10 pixels par cm.
Elle est codée sur 100 x 100 = 10000 pixels.
Avec une résolution convenable de 100 pixels par cm (un pixel mesure 0,1 mm), elle
serait codée sur 1000 x 1000 = 1000000 pixels = 1 M pixels. Le symbole M signifiant
million.
Si le nombre de pixels est insuffisant par cm, on observe l'effet de pixellisation.
Si la résolution correspond à celle d'un écran d'ordinateur, elle est donc idéale pour
visualiser une image sur l'écran.

Les formats d’images :
Les images matricielles de bonne qualité enregistrées pixel par pixel (format bmp)
peuvent être très encombrantes. Cela pose un problème de volume occupé en
IUT de RODEZ
Page 3
Projet Tuteuré LPD2I
07/06/2017
mémoire, mais aussi de difficulté lors des traitements : plus une image est "lourde",
plus elle nécessite de ressources matérielles, surtout pour les transferts de données, en
particulier sur l'internet.
Pour réduire la place occupée en mémoire, on utilise divers algorithmes de
compression et donc différents formats de stockage.
Lors du chargement de l'image, le logiciel reconnaissant le format du fichier le
décompresse à l'ouverture. Lors de son utilisation, le fichier est donc décompressé.
Principaux formats :
Format Compression des
données
BMP Non compressé
Nb de
Affichage Format
couleurs progressif propriétaire
de 2 à 16 Non
Non
millions
JPEG
Réglable, avec perte
de qualité. Plus la
compression est
importante, plus
l'image est dégradée.
format destructeur
Oui, sans perte de
qualité
16
millions
de 2 à 256 Oui
avec
palette.
Brevet
Unisys
Réglable, au choix
sans perte ou avec
perte de qualité
Oui, sans perte de
qualité
16
millions
Brevet
Aldus
corporation
Non, libre de Tous, recommandé
droits
Internet mais
incompatible avec les
navigateurs anciens.
Supporte la
transparence.
GIF
TIFF
PNG

Oui
Non
de 2 à 256 Oui
ou 16
millions
Usage
Image non dégradée
mais très lourde.
Stockage
Non, libre de Tous usages, selon
droits
compression.
Images "naturelles".
Logos et Internet.
Supporte les
animations et la
transparence.
Tous sauf Internet
Si l’on veut placer des images sur le Web, il vaut mieux utiliser le format PNG ou le
format JPEG compressé.
La difficulté est de trouver un compromis entre le volume occupé par l'image et sa
qualité. On peut considérer qu'une compression à 15% dégrade l'image de manière
imperceptible (le volume occupé est diminué de beaucoup plus de 15%). Dans tous les
cas, il faut faire des essais…
Différents moyens :
Il existe plusieurs moyens de visualiser les images numériques. Tout d’abord en
utilisant un explorateur présent sur tous les systèmes d’exploitation. De même, nous
pouvons utiliser un logiciel spécifique comme ACDSEE. Enfin, une image peut être
visualisée grâce à l’explorateur, lorsqu’elle est intégrée dans une page web.
IUT de RODEZ
Page 4
Projet Tuteuré LPD2I
07/06/2017
II. Les bases de données multimédias
A. Définition
Une base de données multimédia permet par rapport aux autres bases de données de
traiter de nouveaux formats de données. Ces format concernent les données
multimédia tel que :
 Le son
 Les photographies
 Les vidéos
 Les séquences interactives
Les SGBD Multimédia (appelés aussi SGBD-R Orientés Objet ou Langages de 4ème
Génération) sont capables de traiter les données multimédia. Ils conservent les
données dans leur format spécifique. Au-delà des types de données classiques, un
SGBD multimédia doit être capable de gérer des types de données multimédias,
incluant texte libre, géométrie, image, son, vidéo, etc. Il doit bien sûr être un SGBD, et
donc offrir persistance, concurrence et fiabilité des données, proposer un langage
d’interrogation par le contenu et prendre en charge la gestion de larges volumes de
données. Les BD multimédias sont particulièrement volumineuses, du fait de la
complexité des types de données gérées. L’efficacité des recherches par le contenu
sur les types de données multimédias est une difficulté importante des SGBD
multimédias. Pour surmonter cela, ces systèmes doivent offrir des structures de
stockage et de recherche efficaces.
B. Représentation des images
Il existe un type de données Image dans les bases de données multimédia. C’est
simplement une matrice de pixels, chaque pixel étant codé par un nombre entier
représentant sa couleur, parmi 2**16 ou 2**32 couleurs possibles. Les dimensions
classiques des images informatiques sont 640*480, 800*600, 1024*768. Cette matrice
est encapsulée par des familles de fonctions pour les manipulations de base (tourner,
translater,…), pour l’amélioration des couleurs (peindre, améliorer), pour la
composition d’images (superposer, soustraire,…), pour l’extraction de thèmes, et enfin
pour les mesures de similarité.
A. Les bases de données images
IUT de RODEZ
Page 5
Projet Tuteuré LPD2I
07/06/2017
Les bases de données images sont développées pour permettre d’effectuer des
traitements plus avancés qu’avec des bases de données multimédia et le type BLOB
associé à ces dernières.
Ainsi, des requêtes sur le contenu des images pourront être demandées.
La recherche d’image dans ce type de bases de données peut se faire par
l’intermédiaire de mots-clés ou de construction linguistique proches du langage
naturel. En effet, le résultat de telles requêtes permet donc de rechercher des images
par similarité. Les images présentées à l’utilisateur après la recherche seront les
images les plus voisines d’une image donnée. Cependant, il existe certains problèmes
liés à ces bases de données images : les images stockées sont souvent complexes pour
les systèmes de reconnaissance de forme et leur nombre est généralement très élevé.
Au niveau de la structure de données, les images sont de matrices à deux dimensions ;
chaque élément de la matrice est un pixel.
La recherche s’effectue par l’intermédiaire d’un index. Cet index est calculé au
chargement et peut être défini suivant plusieurs types : mots-clés et légendes
(description textuelle manuelle de l’image), signatures (description textuelle et parties
caractéristiques de l’image), distribution de couleurs (image caractérisée par ses
couleurs essentielles), texture des images (extraire les granularités répétitives),
extraction de sous objets (reconnaissance de sous objets homogènes), détection de
contours (zones de contrastes détectées et comparées à d’autres images),
reconnaissance de formes (forme d’un objet, d’un paysage, d’une personne et
comparaison).
La perception de similitudes entre images peut être réalisée en fonction de thèmes. Un
processus automatique d’extraction est effectué sur les images pour résumer ces
images par des vecteurs de thème (vecteur à N dimensions, chaque dimension
correspondant à une mesure sous forme d’un nombre réel ou d’un codage). Ces
thèmes sont regroupés en classes de thèmes. Ces classes correspondent à
l’interprétation d’une image dans un domaine donné.
La recherche par similarité s’effectue en voyant la proximité des vecteurs de thèmes.
Un calcul de distance est opéré entre les points représentés par les vecteurs. Le
principe général est de classer les points en partitions et éliminer celles dont la
distance minimale est supérieure à celle d’autres images.
De nombreuses fonctions sont disponibles sur la matrice où sont stockées les images.
Ces opérations concernent la manipulation de base, l’amélioration des couleurs, la
composition d’images, l’extraction de thèmes et la mesure de similarité.
Diverses techniques de transformation sont également disponibles pour obtenir les
vecteurs de thème.
III. Les bases de données images représentent donc une partie des bases
de données multimédia. En effet, on parle aussi de bases de données
audio et vidéo. Les bases de données « classiques »
A. Définition
IUT de RODEZ
Page 6
Projet Tuteuré LPD2I
07/06/2017
Peu de systèmes sont exclusivement multimédias. La tendance consiste plutôt à
utiliser les SGBD objet ou objet relationnels pour réaliser des SGBD multimédias. Il
s’agit alors d’intégrer les types de données multimédias avec les fonctions de
manipulation usuelles, des méthodes de stockage et de recherche appropriées, et des
composants de formulation de requêtes et de visualisation de résultats adéquats.
B. Représentations des images
1. BLOB : Binary Large OBject.
Littéralement « grand objet binaire ». C'est en général une image ou une séquence
sonore sans grande structure interne. La taille d'un Blob peut aller jusqu'à plusieurs
Go. C’est une forme de stockage très simple des types de données non formatés : il
s’agit toujours d’une séquence de bits ou de caractères. Cette chaîne peut être lue ou
écrite comme une valeur d’attribut dans la base. Les SGBD ne savent pas traiter le
contenu des BLOB : il n’en connaissent pas la structure. Les opérations sont
restreintes à la lecture et l’écriture par partie.
2. CLOB : Character Large Object.
Chaînes constituées de caractères codés sur un octet. Il existe aussi les DBCLOB
(Double Byte CLOB) constitués quant à eux de caractères notés sur deux octets.
Permet de stocker des textes.
3. BFILE : Binary File
Permet de stocker un fichier binaire dans un fichier externe à la base de données
Oracle (sur disque dur, CDROM, CdPhoto, …). Le fichier peut avoir une taille
maximale de 4 giga bytes. L’accès aux données n’est possible qu’en lecture, il n’est
donc pas possible de modifier un BFILE.
IV. Etude des logiciels de gestion de bases de données image
(cf. Annexe : Tableau récapitulatif de ces logiciels)
Prix
Le prix des différents logiciels de gestion de bases de données multimédia varient de
1500 € à 5030 €.
Interface Web
Afin d’avoir une visibilité globale et une diffusion sur Internet ou sur un Intranet, tous
ces logiciels permettent de créer une interface web.
Types de documents gérés
IUT de RODEZ
Page 7
Projet Tuteuré LPD2I
07/06/2017
Les logiciels les plus performants gèrent tous les types de documents multimédia.
Certains ne traitent que les principaux comme les photos, les images, les graphiques…
Configuration
La plupart de ces logiciels sont utilisables sous toutes les versions de Windows et
autres plateformes comme Power Macintosh et MacOS, certains sont plus spécifiques
comme DFI qui ne marche qu’avec des pc Mac Unix. Un autre logiciel se démarque
(Alexandrie de GB CONCEPT) puisqu’ il permet au sein d’un même réseau de
pouvoir faire fonctionner les postes de travail avec des systèmes d’exploitations
différents (Windows NT + Mac).
Création d’une base
La principale différence entre eux dans la création d’une base réside dans la possibilité
de pouvoir paramétrer ou contrôler les champs de celle-ci, ainsi que d établir des
relations entre les bases.
Acquisition et saisie
Tous les logiciels possèdent des outils pour numériser les documents dans presque ou
tous les formats d’images existants (jpeg, tiff, bmp, …). Bien sûr, les images peuvent
être aussi importées ou exportées.
Enfin, au niveau de la saisie l’utilisation d’un thésaurus est omniprésente. Il s’agit
d’utiliser un vocabulaire normalisé et structuré (mots significatifs, synonymes,
polysèmes,…) de façon à donner la liste des mots importants permettant l’indexation.
Un thésaurus peut être global ou spécifique à un domaine.
Indexation
Les modes d’indexation utilisés sont les suivants :
- Thésaurus
- Texte intégral
- Liste d’index
- Aide à la saisie
- Mots-clés
Tous ces modes permettent d’aider l’utilisateur à retrouver plus facilement les
documents pertinents et donc de trouver un maximum de réponses correctes.
Recherche
Les modes de recherche utilisent certains modes d’indexation, en particulier les motsclés, le texte intégral et quelquefois le texte libre. En plus des fonctions de tri sont
intégrées aux logiciels.
Consultation et affichage
De nombreuses fonctionnalités sont proposées par ces logiciels comme par exemple
l’affichage par mosaïque, par liste, par vignette, en plein écran… De même ils
intègrent des outils de retouche d’image pour la rotation, le zoom, le
redimensionnement…
Gestion
La plupart permettent la gestion des utilisateurs (accès, droits…), la gestion
commerciale des stocks (commande, emprunt, …) et la gestion et publication Web.
IUT de RODEZ
Page 8
Projet Tuteuré LPD2I
07/06/2017
Sécurisation
Des outils de sécurisation sont présents, qui permettent en général la gestion de mots
de passe.
Services
Enfin, plusieurs services sont proposés comme la maintenance, l’assistance, la
formation, l’administration ainsi que l’analyse des besoins (conseil, audit, cahier des
charges, statistiques…)
Conclusion
Lors de l’étude de ces logiciels de gestions de bases
de données d’images, nous pouvons nous rendre
compte que de nombreuses fonctionnalités ne sont
pas indispensables pour notre projet. En effet, l’outil
que nous allons développer est une version simplifiée
de ces logiciels. Bien sûr il faudra qu’il intègre les
principales fonctionnalités comme permettre de
gérer différents formats d’images mais les outils de
gestion des utilisateurs ou de retouche d’image
peuvent être mis de côté. Le principal avantage de
développer notre application réside dans la
possibilité de définir nos propres besoins et donc de
limiter les coûts. Comme nous l’avons vu, ces
logiciels sont assez onéreux et le client n’a pas peut
être pas besoin d’autant d’outils. Cependant cette
étude est assez intéressante puisqu’elle permet de
voir ce qui se fait et donc de nous faire réfléchir sur
le domaine et les outils utilisés.Traitement du sujet
I.
Le besoin
Le besoin principal de ce projet est la réalisation d’un site Internet permettant la
gestion d’images, s’apparentant à un album photo, grâce au langage ASP.NET et à
MSDE, version allégée de SQL Server. Les images seront directement stockées dans
la base de données grâce au type BLOB. L’application sera divisée en deux grandes
parties : la partie utilisateur et la partie administrateur.
IUT de RODEZ
Page 9
Projet Tuteuré LPD2I
07/06/2017
Dans la partie utilisateur, nous pourrons consulter le catalogue de photos grâce à une
liste de toutes les photos de la base, accéder à la description d’une photo en particulier
et pouvoir l’afficher. De même, deux types de recherche seront disponibles une
recherche simple et une avancée.
La partie administrateur nous servira à ajouter, supprimer, modifier une photo. De
même, il sera possible d’appliquer les caractéristiques d'une photo à une ou plusieurs
autres photos. Nous pourrons créer aussi les différentes rubriques, personnes et leur
contenu respectif, et donc les différentes instanciations d’une photo (cf. modélisation
d’une image).
II.
Modélisation d’une image
Nous avons décidé de créer un modèle de photo assez générique afin de pouvoir
concevoir plusieurs instanciations. Notre photo est composée d’un ensemble
d’éléments regroupés en rubriques (ex : titre, lieu,…) se décomposant elles-mêmes en
3 niveaux maximum. En effet, une rubrique contient des éléments. Certains éléments
peuvent être de type "séparateur" et deviennent alors des sous catégories de la
rubrique. Grâce à la gestion de l’ordre d’affichage des éléments, nous pouvons définir
le contenu des rubriques et des sous rubriques. Les rubriques sont stockées dans la
table RUBRIQUE et les éléments dans la table ELT_RUBRIQUE. La table
ELEMENT contient les valeurs par défaut de tous les éléments (ex : case cochée).
Enfin la table CARACTERISE associe tous les éléments à la photo et contient le
contenu de ces éléments.
La deuxième grande partie du modèle concerne la description des personnes. Toutes
les instanciations sont possibles. En effet, nous pouvons créer un composant personne
adapté au cadre de la famille, d’une entreprise, d’une école…Ce composant a été
conçu de la même manière que les rubriques et les éléments. Les personnes sont
divisées en plusieurs catégories (ex : famille, amis, …) stockées dans la table
CAT_PERSONNE .Ces catégories sont composées de personnes entreposées dans la
table PERSONNE (ex : parent1, parent2, ami…). Certaines valeurs de cette table et
de type "séparateur" (ex : parent1 & parent2) permettent de créer une sous catégorie
composée d’élément de la même table. La table DEF_PERSONNE contient les valeurs
par défaut des personnes. Et donc, la table FIGURE associe la catégorie Personnes à
une photo.
Différentes rubriques peuvent êtres créées pour la modélisation d’une photo :
 les principales caractéristiques d’une photo et stockées dans la table du
même nom (auteur, date d'ajout, taille, résolution, nombre de vue,
description).
 le contexte de lieu géographique (pays, région)
 le contexte de lieu naturel (montagne, mer, rivière,…)
 les éléments techniques (marque appareil photo, qualité fichier, date du
cliché)
 Rangement (type, stockage)
 Type de la photo (type : paysage,ville,… ; conditions : moment, pluie,…)
 etc...
IUT de RODEZ
Page 10
Projet Tuteuré LPD2I
III.
07/06/2017
L’analyse : le modèle choisi

Diagramme des classes UML

Schéma relationnel
PHOTOS (id_photo, image, titre, description, taille, date, auteur, reso_horizontale,
reso_verticale, type, nb_vue)
FIGURE (id_photo, id_personne, id_cat_personne, choix)
PERSONNE (id_personne, id_cat_personne, nom, type, ordre_affichage)
CAT_PERSONNE (id_cat_personne, libelle, ordre_affichage)
DEF_PERSONNE (id_def_personne, id_personne, id_cat_personne, choix)
IUT de RODEZ
Page 11
Projet Tuteuré LPD2I
07/06/2017
CARACTERISE (id_elt_rubrique, id_rubrique, id_photo, choix)
RUBRIQUE (id_rubrique, libelle, ordre_affichage)
ELT_RUBRIQUE (id_elt_rubrique, id_rubrique, libelle, type, ordre_affichage)
ELEMENT (id_element, choix, id_elt_rubrique, id_rubrique)
IV.
Exemples : instances issues du modèle
Modèle IUT
IUT de RODEZ
Page 12
Projet Tuteuré LPD2I
07/06/2017
Modèle Mes photos
IUT de RODEZ
Page 13
Projet Tuteuré LPD2I
IUT de RODEZ
07/06/2017
Page 14
Projet Tuteuré LPD2I
07/06/2017
Modèle hôpital
Réalisation
IUT de RODEZ
Page 15
Projet Tuteuré LPD2I
I.
07/06/2017
Problématique
La principale problématique de cette application est le stockage de l’image. C’est-àdire la sauvegarde de l’image ainsi que les informations qui l’accompagnent. Les
logiciels de reconnaissance d’image ne sont pas encore très élaborés, c’est pour cela
que le modèle choisi pour la modélisation d’une image se sert des nombreuses
informations en rapport avec une image donnée. En définissant une image à partir des
éléments qu’elle contient, il est possible d’effectuer divers traitements sur celle-ci. Ces
éléments constituant l’image sont créés par l’utilisateur dans l’application et dépendent
ainsi totalement de ces besoins.
II.
Technologies existantes – Choix techniques
1. ASP
En 1996, Microsoft lance les ASP, pour Active Server Page. ASP a su très vite
s'imposer sur le marché des technologies serveur, grâce notamment à la gratuité du
serveur Web : IIS (Internet information Server). Ce langage, propriété de Microsoft, se
veut très proche de Visual Basic. Le langage permet, bien entendu, d'exécuter des
Scripts côté serveur, de rendre les pages dynamiques et, ainsi, de posséder un site
toujours renouvelé, avec une mise à jour constante. Le langage de base pour
développer en ASP est le VBScript (version light du célèbre Visual Basic de
Microsoft). Il a quelques ressemblances avec JavaScript. Les pages ASP portent
l'extension .asp (Active Server Page).
2. ASP.NET
Il s'agit d'une architecture 3 tiers avec un utilisateur distant (navigateur), un serveur
HTTP et les données dans une base de données centralisée.
Il est donc nécessaire d'effectuer 3 choix : la technologie de développement Web, la
base de données et l'environnement graphique.
Cette technologie de développement fonctionne sous les systèmes Windows 2000 et
XP équipés du framework .NET.
Quelques précisions sur ASP.NET :

ASP.NET est indissociable du framework .NET, l'environnement
d'exécution des applications .NET constitué du CLR (Common Language
Runtime), de la bibliothèque des classes et des compilateurs .NET.

Les pages ASP.NET portent l'extension .aspx (ASP eXtented).

La compilation d'une page ASP.NET n'a lieu que lors de la première
requête vers cette page. La page demandée est alors compilée sous la forme
d'un module objet en langage MSIL (Microsoft Intermediate Language).

La CLR réalise l'édition de lien avec les modules objet des classes utilisées
dans la bibliothèque .NET ainsi que la production d'un assemblage (composant
binaire exécutable). Ceci conduit à la production d'un contenu HTML, transmis
en retour au navigateur.
IUT de RODEZ
Page 16
Projet Tuteuré LPD2I

07/06/2017
Divers langages peuvent être utilisé dans une page : C#, VB.NET et
Jscript.NET. VB.NET : évolution majeure de Visual Basic auquel ont été
ajouté des fonctionnalités objet. C# : langage objet dont la syntaxe et les
fonctionnalités sont proches de C++ et Java. Jscript.NET : évolution de Jscript
prenant en charge le typage des variables et les fonctionnalités objet.
Nous avons choisi ASP.NET car cette technologie est très récente et nous souhaitions
découvrir un nouveau langage qui puisse nous servir par la suite. De plus, parmi les
langages disponibles pour la conception des pages, nous avons choisi VB.NET car la
majorité des exemples et des tutoriaux disponibles sur Internet sont en VB.NET.
3. MSDE (Microsoft SQL Server 2000 Desktop Engine)
Il s’agit d’une version allégée et gratuite du SGBD Microsoft SQL Server. En effet
celle-ci ne contient que les services de SQL Server, sans les interfaces graphiques de
gestion de la base de données. Il s'agit donc d'un environnement léger dédié au
développement.
4. BLOB
Nous avons choisi de stocker les images avec le type BLOB et non avec leurs
chemins. En faisant les recherches sur les bases de données multimédias, nous avons
découvert l’existence de ce type. Nous avons donc décidé d’utiliser cette méthode.
Avec MSDE, il existe un type « image » qui est en fait un BLOB.
Nous avons trouvé des difficultés dans la recherche d’exemples (principalement sur
Internet) car les BLOB sont apparemment peu utilisés. En effet, pour pouvoir stocker
une image dans ce format, il faut d’abord la transformer en binaire et l’envoyer dans la
base. Mais nous sommes enfin arrivés à stocker des images et à les afficher et donc
l’application que nous avons réalisée utilise le type « image » pour le stockage dans la
base de données.
5. Flash
En premier lieu, c'est un logiciel de dessin vectoriel, qui permet de créer facilement
des animations mais également de créer des composants (boîte à cocher, champs de
saisie, liste déroulant, liste de contrôle, …).
Le comportement de ces composants peut être modifié à l’aide du langage de
programmation associé à Flash : Action Script. Ainsi, par l’intermédiaire d’un plugin,
ces composants sont affichés et utilisés dans le navigateur. Même si Flash permet
l’accès aux bases de données, celui-ci sera effectué dans la partie ASP.NET, les
composants Flash se limitant au traitement des données au niveau de l’IHM de
l’application.
III.
Mise en place de la plate-forme de développement
Pour réaliser ce projet, une configuration logicielle est nécessaire:
IUT de RODEZ
Page 17
Projet Tuteuré LPD2I




07/06/2017
Windows 2000 ou XP,
Framework .NET (gratuit),
environnements de développement WebMatrix (gratuit), Microsoft
Visual Studio .NET (disponible à l'IUT), Delphi 7 Studio, ou un simple bloc
note.
un moteur de base de données MSDE (gratuit).
Le kit de développement .NET (ou .NET SDK) contient un ensemble d'outils
nécessaire au développement d'applications .NET (la CLR, la bibliothèque des classes
.NET, les compilateurs .NET, le moteur de base de données MSDE, une
documentation complète, de nombreux exemples). Il est téléchargeable gratuitement
sur la site www.asp.net dans une langue choisie (français dans notre cas). Sa taille est
de 130 Mo.
L'installation du kit de développement nécessite un système d'exploitation compatible
: Windows 2000 ou XP Pro.
Il est aussi recommandé d'installer au préalable le serveur Web IIS (Internet
Information Server).
Pour installer ce dernier, il faut passer par Ajout/Suppression de programmes dans
Panneau de configuration et choisir Ajouter/Supprimer des composants Windows.
Pour installer ensuite le kit de développement, il suffit de lancer le setup.exe et de
garder les options par défaut. L'installation du framework .NET est terminée.
L'installation de MSDE se fait en ligne de commande une fois le paquetage
d’installation décompressé (dans le répertoire par défaut C:\MSDERelA) : il faut donc
faire «setup SAPWD=mot de passe INSTANCENAME=nom d'instance».
Il faut ensuite redémarrer et une l'icône apparaît dans la barre des tâches en bas à
droite.
Il faut alors effectuer une modification dans la base de registre : mettre la valeur de la
clé
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
SQL
Server\BDD\MSSQLServer\LoginMode" à 2 (connexion mixte : utilise le mode de
connexion de Windows ou les identifiants SQL, le mode par défaut ne permettant que
le mode de connexion Windows).
L'installation de Web Matrix est elle aussi assez simple, il suffit de lancer l'exécutable
d'installation.
Le groupe ASP.NET Web Matrix est alors ajouté dans le menu Programmes du menu
Démarrer.
IV.
Structure de la base
1. Création de la base
Par l'intermédiaire de l'interface graphique de Web Matrix, nous pouvons effectuer des
opérations simples sur une base de données SQL Server ou MSDE.
Pour créer une nouvelle base ou se connecter à une base existante, il faut donc cliquer
sur l'icône New Connection dans l'onglet Data. Dans la fenêtre qui apparaît, le nom du
serveur et le mode d'identification sont demandés. Il suffit ensuite de cliquer sur le lien
Create New Database en saisissant un nom pour la base de données.
IUT de RODEZ
Page 18
Projet Tuteuré LPD2I
07/06/2017
Un fois connecté à la base de données, pour créer une table, il faut cliquer sur
l'élément Table dans l'onglet Data et ensuite sur l'icône New Item. Il est nécessaire
ensuite de spécifier les caractéristiques de la base.
Pour mettre à jour le contenu d'une table existante, on sélectionne la table souhaitée
dans la fenêtre Data et on clique ensuite sur l'icône Edit. Une fenêtre apparaît, il suffit
ensuite de saisir les données.
Web Matrix permet de créer des procédures stockées, en saisissant directement le code
SQL dans la fenêtre de saisie. On sélectionne le lien Stored Procedures dans la fenêtre
Data, puis l'icône New Item. Une fenêtre pour l'édition du code SQL apparaît. Il suffit
donc de saisir le code et d'enregistrer les modifications.
2. Récupération de la base
Une fois la structure faite et sauvegardée, il est possible de la récupérer pour pouvoir
travailler sur d’autres ordinateurs.
On a donc 2 scripts, un de sauvegarde dans un fichier et un de restauration des
données :
backup.sql
restore.sql
USE master
GO
BACKUP DATABASE photos
TO DISK = 'c:\photos.bak'
WITH FORMAT,
INIT,
NAME = 'Sauvegarde de la
base photo';
GO
USE master
GO
RESTORE DATABASE photos
FROM DISK = 'c:\photos.bak';
GO
Pour placer la structure dans un fichier, il faut donc mettre le fichier backup.sql dans
C:\ et exécuter la commande suivante :
osql.exe -Slpd2i24\bdd -Usa -Pphotos -dmaster -iC:\backup.sql -r1 -m-1
(le nom de l’ordinateur doit être remplacé suivant la machine sur laquelle on se
trouve).
Pour récupérer la structure, on place donc les fichiers restore.sql et photos.bak (fichier
de sauvegarde généré par backup.sql) dans C:\ et on exécute la commande suivante :
osql.exe -Slpd2i24\bdd -Usa -Pphotos -dmaster -iC:\restore.sql -r1 -m-1
(le nom de l’ordinateur doit être remplacé suivant la machine sur laquelle on se
trouve).
On peut donc voir le résultat du chargement de la structure dans l’onglet Data du
logiciel Web Matrix.
IUT de RODEZ
Page 19
Projet Tuteuré LPD2I
V.
07/06/2017
Elaboration du site
Une fois les logiciels installés, il faut donc créer un répertoire virtuel dans IIS
(Panneau de Configuration > Outils d’Administration > Services Internet (IIS)) en
faisant un clic droit et en sélectionnant Nouveau répertoire virtuel sur le liens « Sites
Web par Défaut » dans l’arborescence de IIS.
On accède ensuite au site par le navigateur en tapant l’adresse
http://localhost/nom_répertoire_virtuel/ (Nous prendrons comme nom de répertoire
virtuel « photos »).
A. Fonctionnalités du site

Partie Utilisateur
Au lancement du site, l’utilisateur arrive sur la page d’accueil affichant le catalogue de
photos c'est-à-dire la liste des photos disponibles sur le site. Un menu est présent sur la
partie gauche de la page comprenant l’accès à la page d’accueil (catalogue de photos),
à la recherche simple ou avancée.
IUT de RODEZ
Page 20
Projet Tuteuré LPD2I
07/06/2017
La liste des photos peut être triée par titre, par date, par auteur, par nombre de vue ou
par taille. De même, elle peut être triée par ordre croissant ou décroissant par rapport
au nombre de vue de la photo. Une case à cocher sert a afficher les miniatures de
chaque image afin d’avoir une meilleure visualisation. Chaque page du catalogue
contient une liste de 10 photos.
Caractéristiques d’une photo
Pour accéder à une photo en particulier, il suffit de cliquer sur son titre. La page
spécifique d’une photo s’affiche alors présentant toutes ses caractéristiques. Aucune
information ne peut être modifié puisqu’il ne s’agit que d’une visualisation. Nous
pouvons cependant afficher l’image en taille réelle en cliquant sur sa miniature.
Enfin un bouton est présent pour revenir sur la page précédente.
Recherche simplifiée
IUT de RODEZ
Page 21
Projet Tuteuré LPD2I
07/06/2017
Il s’agit d’une recherche effectuée sur les champs (cf. ci-dessus) de la table PHOTOS
donc présents quelque soit la façon dont une photo est représentée.
IUT de RODEZ
Page 22
Projet Tuteuré LPD2I
07/06/2017
Recherche avancée
En plus de reprendre les critères de la recherche simplifiée, la recherche avancée
propose tous les critères correspondants à tous les éléments des rubriques ainsi que les
éléments de la catégorie Personne. Cette recherche s’adapte de manière dynamique
aux différents changements qui peuvent se produire lors d’une nouvelle instanciation
ou d’un rajout d’un élément dans une rubrique. Le résultat renvoyé peut alors contenir
tous les critères de recherche ou juste un seul. Un pourcentage est calculé et affiché
dans la liste de résultats pour présenter la pertinence du résultat trouvé. (ex : 100%
indique que la photo contient tous les critères)
IUT de RODEZ
Page 23
Projet Tuteuré LPD2I
07/06/2017
Exemple de page de résultats: (critères : animaux, macrographie, journée)

Partie Administrateur
Cette partie est accessible à partir de l’adresse http://localhost/photos/admin/
Par défaut, l’administrateur arrive sur la page listant les images. Il s’agit de la même
interface que celle définie pour l’utilisateur, cependant quelques éléments sont ajoutés.
L’administrateur peut donc lui aussi voir les photos, les trier et voir les miniatures
mais il a la possibilité aussi de supprimer (avec demande de confirmation), modifier
ou ajouter une image avec les mêmes caractéristiques. Pour effectuer ces dernières
actions, il lui suffit de cliquer sur le bouton correspondant.
Dans cette partie, l’administrateur a accès à un menu, en haut à droite de la page. Il
peut donc effectuer les actions suivantes :
 ajouter une photo,
 lister les photos,
 gérer les catégories,
 gérer les éléments des catégories,
 gérer les catégories de personnes,
 gérer les personnes,
 effacer les photos de la base de données,
 effacer les photos et le modèle de données de l’instance.
ASP.NET n’arrive pas à récupérer les caractères accentués issus de composant Flash.
Ceux-ci sont supprimés lors de l’ajout dans la base de données. Nous n’avons pas pu
trouver de solution à ce problème.
Gestion des catégories
Il s’agit d’un composant Flash permettant d’ajouter, de supprimer, de modifier une
catégorie et de changer l’ordre d’affichage de ces dernières.
IUT de RODEZ
Page 24
Projet Tuteuré LPD2I
07/06/2017
Pour ajouter une catégorie, on saisit le nom de la catégorie dans le champ
« Catégorie » et on valide en cliquant sur le bouton OK.
Pour supprimer une catégorie, il faut donc la sélectionner et cliquer sur la croix rouge.
Si la catégorie que l’on souhaite supprimer possède des éléments, il ne sera pas
possible de la supprimer (problème de clé étrangère).
Pour modifier une catégorie, une fois celle-ci sélectionné, on modifie son nom dans le
champ « Catégorie » et on valide en cliquant sur le bouton avec les flèches bleues.
Les flèches haut et bas servent à modifier l’ordre d’affichage ; une fois la catégorie
sélectionnée, on peut ainsi la faire descendre ou monter dans la liste.
Une fois les modifications de ce composant effectuées, il suffit de cliquer sur le
bouton Valider pour mettre à jour la liste des catégories dans la base de données.
Gestion des éléments des catégories
En cliquant sur le lien « Contenu des catégories » du menu, on accède à la liste des
catégories de l’instance définie. On peut donc gérer le contenu d’une catégorie donnée
en cliquant sur celle-ci.
IUT de RODEZ
Page 25
Projet Tuteuré LPD2I
07/06/2017
Le fonctionnement de ce composant Flash est similaire à celui de la gestion des
catégories. Il ne s’agit plus de l’ajout de catégories mais d’éléments pour une catégorie
donnée. Un élément est composé d’un nom, d’un type et d’une valeur par défaut. Le
type peut être : Champ de saisie, Boîte à cocher, Liste déroulante ou Séparateur (le
champ de la valeur par défaut disparaît dans le cas d’un séparateur, ainsi un séparateur
permettra de faire apparaître des sous catégories).
IUT de RODEZ
Page 26
Projet Tuteuré LPD2I
07/06/2017
Gestion des catégories de personnes
Il s’agit d’un composant Flash fonctionnant de manière similaire à la gestion de
catégories. Les opérations effectuées portent donc sur des groupes de personnes.
Gestion des personnes
Le fonctionnement de ce composant est le même que celui de la gestion de contenu de
catégorie. Il faut donc sélectionner un groupe de personnes. Les opérations d’ajout, de
modification, de suppression et de déplacement sont donc possibles.
IUT de RODEZ
Page 27
Projet Tuteuré LPD2I
07/06/2017
Ajout d’une photo
Cette partie est décomposée en plusieurs pages, pour une meilleure interface. Il est
possible de naviguer entre toutes ces pages grâce aux boutons « Précédent » et
« Suivant ». Ces pages sont donc fonction du nombre de catégories et de catégories de
personnes existantes dans le modèle défini. Dans un premier temps, il faut donner des
caractéristiques élémentaires de la photo.
IUT de RODEZ
Page 28
Projet Tuteuré LPD2I
07/06/2017
Dans le cas d’une page concernant une catégorie, on obtient un formulaire de ce
genre :
Dans le cas d’une page concernant une catégorie de personnes, on obtient un
formulaire de ce genre :
IUT de RODEZ
Page 29
Projet Tuteuré LPD2I
07/06/2017
Une fois toutes les pages renseignées, l’image est ajoutée dans la base de données
ainsi que toutes ces caractéristiques, une boîte de dialogue en informe l’utilisateur, et
celui-ci est redirigé vers la page d’ajout de photo (pour un autre ajout si il le désire).
Ajout d’une photo avec les mêmes caractéristiques qu’une photo déjà présente
Cette opération est accessible depuis la liste des photos (dans la partie administration).
En cliquant sur le bouton correspondant à une photo donnée, on peut donc ajouter une
image possédant des informations similaires.
Une page affichant toutes les informations de la photo déjà présente apparaît. On peut
alors sélectionner une ou plusieurs catégories. Dans ce cas, seules les informations des
catégories non sélectionnées seront demandées (sous la forme de plusieurs pages
comme dans l’ajout simple d’une image) ; les informations des catégories
sélectionnées seront quant à elles les mêmes que celles de l'image source, et ne seront
pas demandées à l'utilisateur. Une fois la page de sélection des rubriques passée,
l’utilisateur saisit les caractéristiques élémentaires de la photo (titre, chemin, auteur,
description).
Il est possible de sélectionner toutes les rubriques, alors seule la page demandant les
informations élémentaires de la photo sera affichée.
Une fois la photo ajoutée, une boîte de dialogue en informe l’utilisateur, et celui-ci est
redirigé vers la page d’ajout de photo utilisant les mêmes caractéristiques (pour un
autre ajout utilisant les mêmes caractéristiques si il le désire).
IUT de RODEZ
Page 30
Projet Tuteuré LPD2I
07/06/2017
Suppression des photos de la base de données
Il est possible d’effacer toutes les images contenues dans la base de données. Les
images sont donc effacées ainsi que les liens vers les catégories et les groupes de
personnes. Les catégories, les éléments, les groupes et les personnes ne sont pas
enlevés de la base de données. Un message de confirmation apparaît pour demander à
l’utilisateur si il souhaite réellement effectuer cette opération.
Suppression des photos et le modèle de données de l’instance
L’ensemble des données de la structure sera effacé. Les images ainsi que toutes les
informations relatives aux catégories et aux personnes. Un message de confirmation
apparaît pour signaler à l’utilisateur si il souhaite réellement effectuer cette opération.
B. Analyse critique
1. ASP.NET & MSDE
Tout d’abord, une grande partie du temps a été nécessaire pour se documenter sur les
technologies existantes et en particulier sur ASP.NET. Des informations ont pu être
recueillies dans divers ouvrages ainsi que sur Internet. Cependant, ces informations
restent assez générales. Nous avons donc dû effectuer de pages de tests pour apprendre
le langage afin de faire divers traitements sur les images et leur stockage direct dans la
base de données.
Il a fallu aussi installer divers composants logiciels pour pouvoir développer cette
application. L’installation de ces logiciels a été un véritable « parcours du
combattant » en particulier MSDE pour lequel on trouve peu de documentation (cf. III
dans la partie Réalisation).
Nous avons rencontrés quelques difficultés pour l’ajout et l’affichage d’images
puisque celles-ci sont stockées directement dans la base de données.
En ASP.NET, il n’est pas possible de traiter une image (redimensionner, changement
de format, …). Pour faire cela, il faut installer un composant externe payant. C’est
pourquoi, l’affichage des miniatures dans notre application se fait en changeant les
dimensions de l’image dans le code HTML. Les miniatures font donc le même poids
que les images en taille réelle, mais cela ne pose pas de problème de bande passante
vu que l’application sera utilisée en local.
2. Flash
Nous n’avons pas pu résoudre le problème des caractères accentués ; si l’utilisateur
saisi de tels caractères dans un composant Flash du site, l’ASP.NET ne peut récupérer
ces caractères. Ces derniers ne sont donc pas stockés dans la base de données. Nous
pensons que cela provient d’une norme de codage de caractères différente entre les
deux langages.
Le plugin Flash MX 6 et 7 pour Windows et Macintosh ne gère pas la méthode POST
du protocole http. Seule la méthode GET est gérée. Les informations sont donc
transmises du composant Flash vers la page ASP.NET par l’adresse de la page.
L’adresse d’une page étant limitée, le nombre d’éléments des composants Flash est
réduit à une vingtaine. Néanmoins, nous avons gardé les composants Flash car ils
permettent un meilleur contrôle et vingt éléments par catégorie nous paraissent
IUT de RODEZ
Page 31
Projet Tuteuré LPD2I
07/06/2017
suffisants. De plus, une version du plugin gérant la méthode POST devrait sortir
prochainement.
3. IIS
Nous n’avons pas implémenté de mot de passe administrateur pour l’application. En
effet, celui-ci doit être défini au niveau de IIS. L’accès à la partie administrateur se fait
donc en ajoutant /admin/ à l’adresse du site.
IUT de RODEZ
Page 32
Projet Tuteuré LPD2I
07/06/2017
Conclusion
Ce fut un projet relativement conséquent de part son envergure et sa complexité. Il a
fallu maîtriser l’ASP.NET ainsi que l’Action Script afin de pouvoir élaborer cette
application.
Une grande partie du temps attribué pour le projet a été nécessaire à la recherche
d’informations sur les technologies que nous avons utilisées mais aussi sur l’analyse
du système d’information pour pouvoir représenter divers modèles constitués de
rubriques différentes.
Malgré l’ampleur du projet, nous pensons avoir réalisé une application correspondant
au sujet. Nous avons par contre pas pu implémenter un ajout d’image répondant
spécifiquement au besoin ; l’ajout de plusieurs images possédant les mêmes
caractéristiques se fait image après image, il n’est pas possible de sélectionner un
ensemble d’image pour les ajouter en une seule fois. Ceci aurait pu être implémenter si
nous avions eu un peu plus de temps.
Néanmoins, notre organisation nous a permis de respecter les délais que nous nous
étions fixés et l’application nous semble complète.
IUT de RODEZ
Page 33
Projet Tuteuré LPD2I
07/06/2017
Annexes
IUT de RODEZ
Page 34
Projet Tuteuré LPD2I

07/06/2017
Exemple de code ASP.NET : Insertion d’une image à la base de données
<% Response.Buffer = true %>
<!-- #Include File="../connexion.aspx" -->
<%
'Recuperation des variables du formulaire
Dim
Dim
Dim
Dim
SourceFilePath as String = Request.form("photo")
titrephoto as String = Request.form("titre")
auteurphoto as String = Request.form("auteur")
descriptionphoto as String = Request.form("description")
Dim
Dim
Dim
Dim
Dim
Dim
action as String = Request.form("action")
idphoto as String = Request.form("idphoto")
chaine as String = Request.form("chaine")
crt as String = Request.form("crt")
nb as String = Request.form("nb")
personne as String = Request.form("personne")
descriptionphoto = Replace(descriptionphoto, "'", "´")
auteurphoto = Replace(auteurphoto, "'", "´")
titrephoto = Replace(titrephoto, "'", "´")
Dim erreur as String = "rien"
Dim url as String
if SourceFilePath <> Nothing and titrephoto <> Nothing and auteurphoto <>
Nothing and descriptionphoto <> Nothing
'Récupération de l'extension du ficier
Dim DotPosition As Integer = SourceFilePath.IndexOf(".") 'Positionné
sur le point dans le chemin
'On se postionne juste après le point
DotPosition +=1
Dim extension As String =
SourceFilePath.SubString(DotPosition,SourceFilePath.length-DotPosition)
if extension = "jpg"
extension = "jpeg"
end if
Dim typephoto As String = "image/" + extension
if extension = "jpg" OR extension = "jpeg" OR extension = "gif" OR
extension = "png" OR extension = "bmp"
Try
'Ouverture du fichier contenant la photo
Dim fs As New System.IO.FileStream(SourceFilePath,
IO.FileMode.Open, IO.FileAccess.Read)
Dim taillephoto As Integer = fs.Length/1024
Dim currentImage as System.Drawing.Image =
System.Drawing.Image.FromFile(SourceFilePath)
'Résolution horizontale
Dim resolutionX As Integer = currentImage.Width
'Résolution verticale
IUT de RODEZ
Page 35
Projet Tuteuré LPD2I
07/06/2017
Dim resolutionY As Integer = currentImage.Height
'Résolution sous la forme "XXX*YYY"
Dim resolution As String = resolutionX & "*" & resolutionY
Dim datephoto As String = Format(Now, "dd/MM/yy")
Dim NbVuephoto As Integer = 0
Dim cmd As New System.Data.SqlClient.SqlCommand("INSERT INTO
photo (image, titre, description, taille, date, auteur, reso_horizontale,
reso_verticale, type, nb_vue) VALUES (@Picture,'"+ titrephoto +"','"+
descriptionphoto +"',"+ Str(taillephoto) +",'"+ datephoto +"','"+
auteurphoto +"',"+ Str(resolutionX) +","+ Str(resolutionY) +",'"+ typephoto
+"',"+ Str(NbVuephoto) +")", dbConnection)
'Creation de l'objet contenant la photo
Dim b(fs.Length() - 1) As Byte
'Copie de la photo dans l'objet b
fs.Read(b, 0, b.Length)
fs.Close()
'Ajout de la photo a la base de données
Dim P As New System.Data.SqlClient.SqlParameter("@Picture",
System.Data.SqlDbType.Image, b.Length,
System.Data.ParameterDirection.Input, False, 0, 0, Nothing,
System.Data.DataRowVersion.Current, b)
cmd.Parameters.Add(P)
dbConnection.Open()
cmd.ExecuteNonQuery()
dbConnection.Close()
Catch
erreur="droits"
GoTo Droits
End try
else
erreur = "pasphoto"
end if
else
erreur = "noncomplet"
end if
Droits:
if erreur <> "rien"
'On remplace les quotes par leur code HTML afin de ne pas generer
d'erreur dans la requete SQL
descriptionphoto = Replace(descriptionphoto, "´", "'")
auteurphoto = Replace(auteurphoto,"´", "'")
titrephoto = Replace(titrephoto, "´", "'")
url =
"aj_photo.aspx?erreur="+erreur+"&photo="+SourceFilePath+"&auteur="+auteurph
oto+"&titre="+titrephoto+"&description="+descriptionphoto+"&chaine="+chaine
+"&personne="+personne+"&idphoto="+idphoto+"&nb="+nb
Response.redirect (url)
end if
%>
<%
IUT de RODEZ
Page 36
Projet Tuteuré LPD2I
07/06/2017
Dim ds As System.Data.DataSet
Dim cur(,) as string
Dim i as Integer
ds = sql_query("SELECT max(id_photo) FROM photo")
cur = fetch_array(ds)
Dim id_photo as String = val(cur,0,0)
'Redirection vers la page qui demande les caracteristiques pour l'ajout
d'une autre photo
url = "infos_photo.aspx?id=" + id_photo + "&courant=0&max=" +
Request.form("max") + "&maxp=" + Request.form("maxp") +
"&chaine="+chaine+"&crt="+crt+"&idphoto="+idphoto+"&nombre="+nb+"&personne=
"+personne
Response.redirect (url) %>
IUT de RODEZ
Page 37
Projet Tuteuré LPD2I

07/06/2017
Exemple de code ASP.NET : Affichage d’une image de la base de données
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<!-- #Include File="connexion.aspx" -->
<%
'Recuperation de l'id de la photo a afficher
dim id_photo as string = Request.QueryString("id")
dbConnection.open()
Response.Expires = 0
Response.Buffer = True
Response.Clear()
'Recuperation de la photo
Dim cmd As New SqlCommand("SELECT * FROM photo WHERE
id_photo="+id_photo, dbConnection)
Dim PictureCol As Integer = 1
'Execution de la requete
Dim dr As SqlDataReader = cmd.ExecuteReader()
dr.Read()
'Recuperation du type de la photo (jpeg, gif, png, ...)
Dim type As String = dr.GetString("type")
'Association du type de la page au type de la photo
Response.ContentType = type
Dim b(dr.GetBytes(PictureCol, 0, Nothing, 0, Integer.MaxValue) - 1) As
Byte
dr.GetBytes(PictureCol, 0, b, 0, b.Length)
dr.Close()
dbConnection.close()
'Affichage de la photo dans la page
Response.BinaryWrite(b)
%>
IUT de RODEZ
Page 38
Projet Tuteuré LPD2I

07/06/2017
Exemple de code ASP.NET : Affichage complet d’une image
<!-- #Include File="header.aspx" -->
<%
'Recuperation de l'id de la photo a afficher
Dim id as String = Request.QueryString("id")
'Mise a jour du nombre de vues de la photo
sql_query("UPDATE photo SET nb_vue=nb_vue+1 WHERE id_photo="+id)
%>
<center>
<table border="0" cellpadding="0" cellspacing="0" width="716">
<tr>
<td width="300"><font size="+1"><b>Photo</b></font>
<table border=1 bordercolor="white" cellpadding="3" cellspacing="0"
width="100%" height="100%">
<tr>
<td>
<%
Dim ds As System.Data.DataSet
Dim cur(,) as string
Dim i as Integer
'Recuperation des informations de la photo
ds = sql_query("SELECT * from photo WHERE id_photo=" + id)
cur = fetch_array(ds)
'On met la date dans un format adapte
Dim ladate as string = val(cur, 0, "date").SubString(0,10)
'Affichage des informations elementaires des photos
Response.write("<b>Titre :</b> " + val(cur, 0, "titre") +
"<br>")
Response.write("<b>Auteur :</b> " + val(cur, 0, "auteur") +
"<br>")
Response.write("<b>Date d'ajout :</b> " + ladate + "<br>")
Response.write("<b>Taille :</b> " + val(cur, 0, "taille") + "
ko<br>")
Response.write("<b>Résolution :</b> " + val(cur, 0,
"reso_horizontale") + "*" + val(cur, 0, "reso_verticale") + "<br>" )
Response.write("<b>Nombre de vue :</b> " + val(cur, 0,
"nb_vue") + "<br>")
Response.write("<b>Description :</b> " + val(cur, 0,
"description") + "<br>")
%>
</td>
</tr>
</table>
<br>
<%
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
ds2 As System.Data.DataSet
cur2(,) as string
ds3 As System.Data.DataSet
cur3(,) as string
j as Integer
url as string
check as string
sep as Integer = 1
IUT de RODEZ
Page 39
Projet Tuteuré LPD2I
07/06/2017
'On recupere toute les rubriques
ds = sql_query("SELECT * FROM rubrique ORDER BY ordre_affichage ASC")
cur = fetch_array(ds)
For i=0 to nbrows(ds)-1
%>
<font size="+1"><b><%=val(cur, i, "libelle")%></b></font>
<table border=1 bordercolor="white" cellpadding="3" cellspacing="0"
width="100%" height="100%">
<tr>
<td>
<table border=0 width=100%>
<%
'On recupere les elements de la rubrique courante
ds2 = sql_query("SELECT * FROM elt_rubrique WHERE id_rubrique="
+ val(cur, i, "id_rubrique") + " ORDER BY ordre_affichage ASC")
cur2 = fetch_array(ds2)
For j=0 to nbrows(ds2)-1
if val(cur2, j, "type") <> "p"
'Si l'element n'est pas un separateur
Response.write("<tr><td>     "+val(cur2, j,
"libelle")+ " : </td><td>")
'On recupere sa valeur
url = "SELECT choix FROM caracterise WHERE
id_photo=" + id + " AND id_rubrique=" + val(cur, i, "id_rubrique") + " AND
id_elt_rubrique=" + val(cur2, j, "id_elt_rubrique")
ds3 = sql_query(url)
cur3 = fetch_array(ds3)
if val(cur2, j, "type") <> "b"
'C'est un champ de saisie ou une liste
deroulante
Response.write("<input type=text size=10
value='"+val(cur3, 0, "choix")+"' disabled=disabled></td></tr>")
else
'C'est une boite a cocher
if val(cur3, 0, "choix") = "ok"
check = "CHECKED"
else
check = " "
end if
Response.write("<input type=checkbox " + check
+ " disabled=disabled></td></tr>")
end if
else
'C'est un separateur
Response.write("<tr><td colspan=2
bgcolor=#3C5D8A><font color=white>"+val(cur2, j, "libelle")+
"</font></td></tr>")
end if
Next
%>
</table>
</td>
</tr>
</table>
<br>
<%
Next
IUT de RODEZ
Page 40
Projet Tuteuré LPD2I
07/06/2017
%>
</td>
<td width="16"> </td>
<td width="400" valign="top"><font size="+1"><b>Miniature</b></font>
<table border=1 bordercolor="white" cellpadding="3" cellspacing="0"
width="100%">
<tr>
<td>
<a href="afficher.aspx?id=<%=id%>" target="_blank"><img
src="afficher.aspx?id=<%=id%>" width="394"
border="0"></a><br><center>Cliquer sur l'image pour l'afficher en taille
réelle</center>
</td>
</tr>
</table>
<br>
<%
'On recupere toutes les categories de personne
ds = sql_query("SELECT * FROM cat_personne ORDER BY ordre_affichage
ASC")
cur = fetch_array(ds)
if nbrows(ds) > 0
%>
<font size="+1"><b>Personnes</b></font>
<table border=1 bordercolor="white" cellpadding="3" cellspacing="0"
width="100%">
<tr valign=top>
<td valign=top>
<center><table border=0 width="90%"><tr><td>
<%For i=0 to nbrows(ds)-1%>
<font size="+0"><b><%=val(cur, i, "libelle")%></b></font>
<table border=1 bordercolor="white" cellpadding="3" cellspacing="0"
width="100%" height="100%">
<tr>
<td>
<table border=0 width=100%>
<%
'On recupere les personnes de la categorie de personnes
courante
ds2 = sql_query("SELECT * FROM personne WHERE id_cat_personne="
+ val(cur, i, "id_cat_personne") + " ORDER BY ordre_affichage ASC")
cur2 = fetch_array(ds2)
For j=0 to nbrows(ds2)-1
if val(cur2, j, "type") <> "p"
'Si l'element n'est pas un separateur
Response.write("<tr><td>     "+val(cur2, j,
"nom")+ " : </td><td>")
'On recupere la valeur de la personne
url = "SELECT choix FROM figure WHERE id_photo=" +
id + " AND id_cat_personne=" + val(cur, i, "id_cat_personne") + " AND
id_personne=" + val(cur2, j, "id_personne")
ds3 = sql_query(url)
cur3 = fetch_array(ds3)
if val(cur2, j, "type") <> "b"
'Champ de saisie ou liste deroulante
IUT de RODEZ
Page 41
Projet Tuteuré LPD2I
07/06/2017
Response.write("<input type=text size=10
value='"+val(cur3, 0, "choix")+"' disabled=disabled></td></tr>")
else
'Boite a cocher
if val(cur3, 0, "choix") = "ok"
check = "CHECKED"
else
check = " "
end if
Response.write("<input type=checkbox " + check
+ " disabled=disabled></td></tr>")
end if
else
'Separateur
Response.write("<tr><td colspan=2
bgcolor=#3C5D8A><font color=white>"+val(cur2, j, "nom")+
"</font></td></tr>")
end if
Next
%>
</table>
</td>
</tr>
</table>
<br>
<%
Next
%>
</td></tr></table></center>
</td>
</tr>
</table>
<%end if%>
</td>
</tr>
</table>
</center><br>
      <input type="BUTTON" value="<
Précédent" onClick="history.go(-1)" name="BUTTON">
<!-- #Include File="footer.aspx" -->
IUT de RODEZ
Page 42
Projet Tuteuré LPD2I

07/06/2017
Exemple de code Action Script (Flash) : Composant de gestion des catégories
//Création d’objets, pour les actions sur boutons
form
= new Object();
enhaut
= new Object();
enbas
= new Object();
lasuppr
= new Object();
validation
= new Object();
modification
= new Object();
laliste
= new Object();
elt_selec
= new int();
elt_selec
= -1;
//Création du tableau contenant la liste des catégories
monFD = new Array();
//Initialisation des styles
MsgErr.setStyle("fontWeight", "bold");
//Affichage des msg d'erreur en gras
BtnAdd.setStyle("themeColor", "haloOrange");
//Halo Orange autour du bouton OK
Haut.setStyle("themeColor", "haloOrange");
//Halo Orange autour du bouton haut
Bas.setStyle("themeColor", "haloOrange");
//Halo Orange autour du bouton bas
Suppr.setStyle("themeColor", "haloOrange");
//Halo Orange autour du bouton suppr
Valider.setStyle("themeColor", "haloOrange");
//Halo Orange autour du bouton suppr
ListeMots.setStyle("rollOverColor", "0x85B2F0");
//Lorsque la souris survole un elt de la liste, celui-ci est entouré de
bleu clair
ListeMots.setStyle("selectionColor", "0x5F8AC4");
//Lorsque un elt de la liste est selec, il est encadré de bleu
ListeMots.setStyle("textSelectedColor", "0xFFFFFF");
//Lorsque un elt de la liste est selec, il devient blanc (plus lisible sur
fond bleu)
//On teste si des catégories sont passées en paramètre
if (_root.mots != undefined){
//Si oui, on les ajoute au tableau
lesmots = _root.mots.split(";");
for (i = 0; i < lesmots.length; i++){
tablo = lesmots[i].split("@");
monFD.addItem({ label: tablo[0], data: tablo[1], del:
tablo[2]}); //On ajoute au tableau
}
ListeMots.dataProvider = monFD;
//On reinitialise
IUT de RODEZ
Page 43
Projet Tuteuré LPD2I
07/06/2017
}
//Si le composant est rechargé suite à une modification, on informe
l'utilisateur que la modif est effectuée
if (_root.action == "modif"){
MsgErr.setStyle("color", "red");
MsgErr.text = "Catégories mises à jour";
}
//Si l'utilisateur clique sur le bouton "OK"
form.click = function(objEvnt){
MsgErr.text = "";
//on réinitialise le msg d'erreur
if (Mot.text != ""){
//si une catégorie a été entrée
for(i = 0; i < monFD.length; i++){
//on teste si la catégorie n'est pas déjà présente dans la
liste
if(monFD[i].label == Mot.text){
MsgErr.setStyle("color", "red");
MsgErr.text = "Catégorie déjà présente";
//si elle est présente on affiche un msg d'erreur
erreur = 1;
}
}
if (erreur != 1){
//s'il n'y a pas d'erreur, on ajoute la catégorie à la liste
if (monFD.length == 0){
lid = 0;
}else{
//On créé l'id de l'element a ajouter
lid = monFD[0].data;
for (i = 1; i < monFD.length; i++){
if (monFD[i].data > lid){
lid = monFD[i].data;
}
}
lid++;
}
monFD.addItem({ label: Mot.text, data: lid, del: "o"});
ListeMots.dataProvider = monFD;
}
Mot.text="";
//on efface le champ contenant la catégorie ajoutée
Mot.setFocus();
//on replace le focus sur le champ pour taper la catégorie
}
}
BtnAdd.addEventListener("click", form);
//Si l'utilisateur clique sur le flèche "remonter"
enhaut.click = function(objEvnt){
MsgErr.text = ""; //On reinitialise le msg d'erreur
IUT de RODEZ
Page 44
Projet Tuteuré LPD2I
07/06/2017
var selIndex = ListeMots.selectedIndex;
//On recupère l'indice de la catégorie selectionnée
if (selIndex == undefined){
//Si aucune catégorie selectionnée => erreur
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous devez sélectionner une catégorie";
}else if(selIndex == 0){
//Si l'elt selectionné est le premier elt => erreur
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous ne pouvez pas remonter la\npremiere
catégorie";
}else{
//Sinon on fait remonter la catégorie sélectionnée, et on descend
l'element au dessus
provlabel = monFD[selIndex].label;
provdata = monFD[selIndex].data;
provdel = monFD[selIndex].del;
monFD[selIndex].label = monFD[selIndex-1].label;
monFD[selIndex].data = monFD[selIndex-1].data;
monFD[selIndex].del = monFD[selIndex-1].del;
monFD[selIndex-1].label = provlabel;
monFD[selIndex-1].data = provdata;
monFD[selIndex-1].del = provdel;
ListeMots.dataProvider = monFD;
//on remet la liste à jour
ListeMots.selectedIndex = selIndex-1;
//on selectionne la catégorie qui a été remontée
}
}
Haut.addEventListener("click", enhaut);
//Si l'utilisateur clique sur le flèche "descendre"
enbas.click = function(objEvnt){
MsgErr.text = "";
//On reinitialise le msg d'erreur
var selIndex = ListeMots.selectedIndex;
//On recupère l'indice de la catégorie sélectionnée
if (selIndex == undefined){
//Si aucune catégorie selectionnée => erreur
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous devez sélectionner une catégorie";
}else if(selIndex == monFD.length-1){
//Si la catégorie selectionnée est la derniere => erreur
IUT de RODEZ
Page 45
Projet Tuteuré LPD2I
07/06/2017
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous ne pouvez pas descendre la\ndernière
catégorie";
}else{
//Sinon on fait descndre la catégorie sélectionnée, et on remonte la
catégorie au dessus
provlabel = monFD[selIndex].label;
provdata = monFD[selIndex].data;
provdel = monFD[selIndex].del;
monFD[selIndex].label = monFD[selIndex+1].label;
monFD[selIndex].data = monFD[selIndex+1].data;
monFD[selIndex].del = monFD[selIndex+1].del;
monFD[selIndex+1].label = provlabel;
monFD[selIndex+1].data = provdata;
monFD[selIndex+1].del = provdel;
ListeMots.dataProvider = monFD;
//on remet la liste à jour
ListeMots.selectedIndex = selIndex+1;
//on selectionne la catégorie qui a été descendu
}
}
Bas.addEventListener("click", enbas);
//Si l'utilisateur clique sur le bouton "supprimer"
lasuppr.click = function(objEvnt){
MsgErr.text = "";
//On reinitialise le msg d'erreur
var selIndex = ListeMots.selectedIndex;
//On recupère l'indice de la catégorie selectionnée
if (selIndex == undefined){
//Si aucune catégorie selectionnée => erreur
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous devez sélectionner une catégorie";
}else{
//Sinon, on supprime la catégorie
if (monFD[selIndex].del == "o"){
//Si il n'y a pas de probleme de clé étrangère
monFD2 = new Array();
for (i = 0; i < monFD.length; i++){
//On parcours le tableau de categories
if(i != selIndex){
//On copie toutes les catégories, sauf la catégorie
à supprimer, dans un tableau provisoire
monFD2.addItem({ label: monFD[i].label, data:
monFD[i].data, del: monFD[i].del});
IUT de RODEZ
Page 46
Projet Tuteuré LPD2I
07/06/2017
}
}
monFD = new Array();
//On reinitialise le tableau
for (i = 0; i < monFD2.length; i++){
monFD.addItem({ label: monFD2[i].label, data:
monFD2[i].data, del: monFD2[i].del});
//On copie la catégorie dans le tableau de
catégories
}
ListeMots.dataProvider = monFD;
//On remet la liste à jour
}else{
MsgErr.setStyle("color", "red");
MsgErr.text = "Vous ne pouvez supprmimer
cette\ncatégorie tant qu'elle contient\ndes
éléments";
}
}
}
Suppr.addEventListener("click", lasuppr);
//Si l'utilisateur clique sur le bouton de validation
validation.click = function(objEvnt){
variable = new LoadVars();
variable.chaine = _root.page;
variable.chaine = variable.chaine + "?action=modif&chaine=";
for(i = 0; i < monFD.length; i++){
//On créé la chaine contenant les catégories, leurs ordre, et leur id
variable.chaine = variable.chaine + monFD[i].label + "@" +
monFD[i].data
if (i < monFD.length - 1){
variable.chaine = variable.chaine + ";";
}
}
getUrl(variable.chaine, "_self", "POST");
//On appelle la page qui modifira la base de données
}
Valider.addEventListener("click", validation);
laliste.change = function(objEvt){
if (ListeMots.selectedIndex != undefined){
elt_selec = ListeMots.selectedIndex
Mot.text = monFD[elt_selec].label;
MsgErr.setStyle("color", "white");
MsgErr.text = "Après avoir modifié l'intitulé de la\ncatégorie,
cliquez sur la\nflèche bleue";
}
}
IUT de RODEZ
Page 47
Projet Tuteuré LPD2I
07/06/2017
ListeMots.addEventListener("change", laliste);
modification.click = function(objEvnt){
for(i = 0; i < monFD.length; i++){
//on teste si la catégorie n'est pas déjà présente dans la liste
if(monFD[i].label == Mot.text){
MsgErr.setStyle("color", "red");
MsgErr.text = "Catégorie déjà présente";
//si elle est présente on affiche un msg d'erreur
erreur = 1;
}
}
if (erreur != 1){
monFD[elt_selec].label = Mot.text;
ListeMots.dataProvider = monFD;
Mot.text = "";
Mot.setFocus();
}
}
Modif.addEventListener("click", modification);
Tableau comparatif des logiciels existants dans le domaine des
SGBG multimedia :
Tableau 1 :
IDENTITE DE
L'ENTREPRISE
Gesco
Site Web
www.gesco.fr www.idsfrance.co www.algoba.co www.dfim
m
fr.com
www.archimed.f
r
LOGICIEL
.
.
.
.
.
Editeur
GESCO
IDS
ALGOBA
DFI
ARCHIMED
Produit
Gesco-Media Pictbase 4.9
Prix (monoposte)
.
1500 € (+ 600 €
formation)
Interface Web
Oui Gesco
Web
Oui
IUT de RODEZ
Pictbase
DFI
Archimed
Orphéa
Orphéa Studio DFI -Pack
3
.
.
Oui
Sim 1.2
.
Oui DFI-Web Oui Sim Web
Pack
Page 48
Projet Tuteuré LPD2I
07/06/2017
Type de documents Photos, sons, Images, photos... Images,
gérés
vidéos,
photos
bureautiques
numériques,
vidéos, pdf
Photos,
documents
multimédia
images,
graphiques,
photos,
Autres
.
.
.
.
.
CONFIGURATION .
.
.
.
.
Configuration
.
(système
d'exploitation,
environnement,
Navigateur,réseau)
Windows
Windows
95/98/
PC Mac Unix
Windows 2000
SQL Server
Netscape 4.5 Version 2000
ME/NT4/200 (min) Internet Internet
0
Explorer 5.0 Information
Serveur (IIS)
(min)
Navigateur
standard
Power
Macintosh
Interface
Web
Autres
.
.
.
.
.
CREATION D'UNE .
BASE
.
.
.
.
Champs
Paramètrables contrôlés
Paramètrable Paramètrables et Paramètrables Paramètrables Paramètrables
s
contrôlés
ou contrôlés
Relation entre les
bases
Oui
.
.
Oui
Oui
ACQUISITION ET .
SAISIE
.
.
.
.
Thesaurus
Oui
Oui
Oui
(synonymes,
homonymes)
Oui
Oui
Import/Export
Oui
Oui
Oui
Oui
Formats d'images
Tous
Tiff, jpeg...
Numérisation
Oui
Jpeg, tiff, bmp,.. 50 formats
graphiques
gérés
.
Oui
Oui
.
Oui
Oui
INDEXATION
.
.
.
.
.
Mode d'indexation Thésaurus, Texte intégral
(mots- clés, texte liste d'index
intégral...)
, aide à la
saisie
Mots clés,
Thésaurus,
texte intégral lexique, par
en temps réel mots clés,
termes
associés
Mots clés
STOCKAGE
.
.
IUT de RODEZ
.
.
.
Page 49
Projet Tuteuré LPD2I
07/06/2017
Sélection images
(chutier, panier,
lot...)
Oui
Oui
Oui
Oui
Oui
Autres
.
.
.
.
.
RECHERCHE
.
.
.
.
.
Mode de recherche Mots clés
(texte intégral...)
Texte intégral
Mots clés,
Texte intégral Mots clés et
texte intégral, mots clés
texte intégral
descripteur
Tri
Oui
Oui
Oui
.
Oui
CONSULTATION
ET AFFICHAGE
.
.
.
.
.
Mode d'affichage
des résultats
Mosaïque ,
plein écran,
zoom,
5 modèles :
Liste et
mixte, prédéfini, mosaïque
tableau, imagette,
double
Mosaïque,
Diffusion d'une
imagette, liste même image
sous différents
types de
formats
.
Oui, zoom,
Outils de retouche Oui, zoom
d'image (rotation, rotation...
zoom,
redimensionnement.
..)
Oui, zoom,
Oui,
redimensionneme résolutions
nt, rotation
multiples,
zoom, niveau
de gris,
rotation,
redimension
de l'image
Autres
Zoom qui
devient une
nouvelle
image
.
.
.
IMPRESSION
.
.
.
.
Mode d'impression Page,
sélection
30 modèles
personnalisation
Fiche, panier
Autres
.
.
.
.
.
GESTION
.
.
.
.
.
Gestions des
Oui
utilisateurs (accès,
droits...)
Oui
Oui
Oui
Oui
Gestion .
Oui
commerciale des
stocks (commande,
emprunt...)
Oui
Oui
Oui
.
Gestion et
publication Web
Oui
Oui
Oui
Oui
Oui
Autres
Gestion par
mails
.
.
.
.
SÉCURISATION
.
.
.
.
.
IUT de RODEZ
rotation...
.
.
Mosaïque, 1/4 .
page, pleine
page
Page 50
Projet Tuteuré LPD2I
07/06/2017
Outils de
sécurisation
Mot de passe Mot de passe
Watermarking Multi, mot de passe, contrôles
adresse IP ,
date de
validité
Mot de passe
SERVICES
.
.
.
.
Maintenance,
assistance
Oui
.
.
Oui
Oui
Oui
Formation
Oui
.
Oui
Oui
Oui
Administration
Oui
Oui
Oui
Oui
Oui
Analyse des
besoins
Audit, conseils Conseil, cahier Conseils, études
études,
des charges,
analyses,
statistiques
statistiques...
Analyse des besoins Analyser,
(conseils, audit,
développer,
cahier des charges, intégrer...
Statistiques..)
Tableau 2 :
IDENTITE DE
L'ENTREPRISE
Cincom
Site Web
Ajaris
Alexandrie
www.cincom.fr www.aidel.com
www.orkis.com
www.gbconcept.com www.dipsystemes.fr
LOGICIEL
.
.
.
.
.
Editeur
CINCOM
AIDEL
ORKIS
GB CONCEPT
DIP-SYSTEME
Produit
Cindoc
Superdoc
Premium
Ajaris Pro 3.1
Alexandrie 5.5
Prix (monoposte)
.
Environ 5030 € 2120 € pour le
(comprends
logiciel Ajaris
logiciel superdoc Pro3
et webpub +
maintenance +
formation)
.
Dip
Photothèque
.
Interface Web
Oui
Oui, grâce a
Superdoc Web
Oui
Oui, Dip-Web
Type de documents
gérés
Tous types de
documents
Tous documents Photo image fixe Tous types de
multimédia
et animée
documents
Images, diapos,
photos ...
Autres
.
.
.
.
.
CONFIGURATION
.
.
.
.
.
IUT de RODEZ
Aidel
Oui
Dip_systèmes
Page 51
Projet Tuteuré LPD2I
07/06/2017
Configuration
(système
d'exploitation,
environnement,
Navigateur,réseau)
Windows
Windows 95-98 Windows 95,98, Compatible avec NT4/2000/98
NT UNIX
Mac OS8-9
(client seul) MacOS
8.5 et supérieur
Architecture 2000, XP
Netscape
client/serveur
Windows
Navigator,
en
Netscape
Windows NT4 98/millenium
environnement SP4 ou plus
Communicator,
/NT4/2000
windows NT,
Internet
Explorer
2000, UNIX,
Microsoft
ou serveur de Internet
fichier
Explorer 5.0
(Windows NT,
Novell...)
Autres
.
.
.
Au sein d'un même .
réseau, les postes
de travail peuvent
fonctionner avec
des systèmes
d'exploitation
différents. ex :
windows NT +MAc
CREATION D'UNE
BASE
.
.
.
.
.
Champs
Paramètrables contrôlés
Paramètrables Paramètrables
Paramètrables
ou contrôlés
selon le client
Paramètrables
Paramètrables
Relation entre les
bases
Oui
Oui
Oui
Oui
Oui
ACQUISITION ET
SAISIE
.
.
.
.
.
Thésaurus
Oui
Oui
Oui
Oui
Oui (graphique)
Import/Export
Oui
Oui
Oui
Oui
Oui
Formats d'images
Tous
30 formats de
fichiers
Tiff, pict, png,
jpeg, photoCd
Kodak...
Tous
Jpeg, photo CD
...
Numérisation
Oui
Oui
Oui
Oui
Oui
INDEXATION
.
.
.
.
.
Mode d'indexation
(mots- clés, texte
intégral...)
Mots clés et
texte intégral
Indexation par
mot clé
Texte intégral, Mots clés
mots clés, saisie
libre
Mots clés et
texte intégral
STOCKAGE
.
.
.
.
.
Oui réunis dans un
dossier
Oui
Sélection images
Oui, lots ou
(chutier, panier, lot...) albums
IUT de RODEZ
Sauvegarde des Oui
fichiers +
réutilisation
Page 52
Projet Tuteuré LPD2I
07/06/2017
Autres
.
.
Image archivée .
sur le volume
choisi (basse
déf.)
.
RECHERCHE
.
.
.
.
.
Mode de recherche
(texte intégral...)
Mots clés et
texte intégral
Texte libre et
Texte intégral + mots clés
mots clés
Texte intégral
Texte intégral
Tri
.
Plusieurs types Oui
de tri
Oui
Oui, par
pertinence
.
.
.
CONSULTATION ET .
AFFICHAGE
Mode d'affichage des Paramètrables
résultats
selon le client 4 types
d'affichages
.
Planches
Imagettes,
contacts, listes, planches contacts,
imagettes,
visualisation
plein écran
Affichage par
mosaïque
d'images
associées à la
fiche vignette,
imagette...
Outils de retouche
Zoom
Zoom, rotation
d'image (rotation,
Paramètrables 90 degré...
zoom,
redimentionnement...)
Zoom, rotation
90 degré,
.
Zoom , rotation
90 degré, loupe
Autres
.
.
.
.
.
IMPRESSION
.
.
.
.
.
Mode d'impression
Module de
diffusion sur
CD Rom
Page,
Page,
Impression d'un
Impression
enregistrement, enregistrement, catalogue d'images d'un état des
sélection
sélection
index
Autres
.
Envoi de rapport .
par mail
.
.
GESTION
.
.
.
.
Gestions des
utilisateurs (accès,
droits...)
Oui
Nombre d'accès Oui
limité
Oui
Oui
Oui édition
Oui (suivi des
d'état des prêt retour, bon de
en cours
commande...)
Oui
.
- fenêtre de
Rapport
- fenêtre
d'édition
- fenêtre
d'affichage
- fenêtre
d'images
Gestion . commerciale Oui
des stocks
(commande,
emprunt...)
IUT de RODEZ
.
Page 53
Projet Tuteuré LPD2I
07/06/2017
Gestion et publication Oui
Web
Oui
Oui
Oui
Oui
Autres
.
.
.
.
.
SÉCURISATION
.
.
.
.
.
Outils de sécurisation Mot de passe
Mot de passe
Watermarking,
mot de passe
Mot de passe
Mot de passe
SERVICES
.
.
.
.
.
Maintenance,
assistance
Oui
Oui
Oui
Oui
Oui
Formation
Oui
Oui
Oui
Oui
.
Administration
Oui
.
Oui
Oui
Oui
Analyse des besoins
(conseils, audit,
cahier des charges,
Statistiques..)
Audit, conseils, Oui
assistance
Audit,
conception de
page web,
statistiques
Etudes des besoins, Analyses des
cahier des charges, besoins,
statistiques
statistiques
Etude d’un logiciel précis :
Ce logiciel a été crée avant tout pour optimiser la gestion de photothèques et de catalogues
électroniques. PictBase V5 a été spécialement conçu pour pouvoir être utilisé par toute
personne sans compétence approfondie :
a. tous les menus sont contextuels et explicites
b. nombreux assistants d’utilisation
c. interface didactique
Cette solution logicielle permet de traiter tous les documents numériques depuis l’acquisition
jusqu'à leur exploitation.
Plus de 60 formats de documents sont supportés dont les formats vectoriels de types dxf,
Shape, etc.
Principales fonctionnalités :
Définition illimitée des champs des catalogues :
Avec PictBase V5, on est libre de créer tous les champs nécessaires à la construction de nos
catalogues sans limite. Le regroupement de ces champs nous permet de définir des structures
réutilisables pour la création de nouveaux catalogues.
Personnalisation des formulaires :
L’éditeur WYSIWYG (What You See Is What You Get) de formulaires de PictBase V5 nous
permet de créer un grand nombre de formulaires de manière très intuitive. Ces formulaires
sont exploités pour la saisie et le partage des informations.
Chaîne d’acquisition rapide :
IUT de RODEZ
Page 54
Projet Tuteuré LPD2I
07/06/2017
PictBase V5 propose toutes les fonctions pour acquérir ou récupérer nos documents depuis un
scanner, un appareil photo numérique ou une banque d’images existante. Nos documents
s’associent instantanément aux catalogues de notre choix et sont indexés selon nos critères.
Création et association de mots-clés :
Nous pouvons décider librement des mots-clés correspondant à notre métier et nécessaire à la
classification de nos documents. Ces mots-clés nous permettront de faire des recherches
performantes et adaptées à votre environnement.
Gestion des requêtes et mémorisation :
Avec PictBase V5, nous disposons de diverses fonctions de recherche pouvant porter sur des
valeurs de champs ou des mots-clés que nous aurons créés : recherche simple ou en cascade.
Certaines de ces recherches peuvent être mémorisées pour une réutilisation ultérieure. Le
résultat d’une recherche peut également être mémorisé grâce à la création d’un panier
permettant de regrouper une sélection de fiches.
Indexation spatiale :
PictBase V5 intègre une fonction de localisation permettant d’indexer nos documents sur des
supports cartographiques ou images, tels que des schémas, des plans. Les sélections de
documents sont réalisées directement sur ces supports.
Publication et impression tous formats :
Nous pouvons publier nos catalogues sous différents formats : diaporama Web, présentation
Microsoft® PowerPoint®, rapport Microsoft® Excel, site Web Internet ou Intranet (option).
Pour les impressions, un module tout en un fournit un aperçu en temps réel de la mise en
page.
Multi contribution :
Avec la configuration multipostes de PictBase V5, tous nos fonds documentaires peuvent être
gérés par un ou plusieurs administrateurs et alimentés par un collège de contributeurs.
Configuration minimale requise







Système d’exploitation : Windows® NT,
2000 ou XP
Processeur : 600 Mhz ou plus
Mémoire vive : 128 Mo RAM
Espace disque dur : 95 Mo
Résolution d’écran : 1024 x 768
Espace disque nécessaire pour l’installation de PictBase V5.
IUT de RODEZ
Page 55
Projet Tuteuré LPD2I

07/06/2017
SOURCES :
Livres :





Georges Gardarin, Interne/intranet et bases de données, Eyrolles, 1999
Lynne Dunckley, Multimedia Databases, Addison-Wesley, 2003
Thierry Thaureaux de Levare, ADO .NET, Micro Application, 2002
Microsoft Press, SQL Server 7.0, 2002
Thomas Petillon, ASP .NET, Les cahiers du programmeur, Eyrolles, 2003
Sites Internet :
 Microsoft MSDN ; http://www.microsoft.com/france/msdn/
 Microsoft ASP .NET ; www.asp.net/
 ASP / ASP .NET Codes Sources ; www.aspfr.com/
 Apprendre à programmer en ASP, PHP, .NET ; www.asp-php.net/
 Developpez.com Club des développeurs; www.developpez.com
 Images numériques
http://www.ccr.jussieu.fr/urfist/image_numerique/Image_numerique1.htm
IUT de RODEZ
Page 56
Téléchargement