IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Stockage de photos et optimisation de taille


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Par défaut Stockage de photos et optimisation de taille
    Bonjour, j'ai une application gérant des clients, ces derniers ont des agences et l'application gere les photos de ces dernières.

    Donc pour chaque client j'ai une 20 de photo de taille (environ4000ko)

    le principe de stockage : j'ai crée un dossier dans le meme dossier ou je stocke la photo et le chemin de cette dernière est stockée dans la BD.

    je souhaite avoir des idée pour optimiser ce que j'ai fait surtout en terme de taille des photos

    Merci

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Msysteme Voir le message
    le principe de stockage : j'ai crée un dossier dans le meme dossier ou je stocke la photo et le chemin de cette dernière est stockée dans la BD.
    Déjà on note que tu n'as pas stocké tes photos dans la base de données, et c'est très bien !

    Citation Envoyé par Msysteme Voir le message
    je souhaite avoir des idée pour optimiser ce que j'ai fait surtout en terme de taille des photos
    Tu peux retravailler les photos pour modifier par exemple leur taille (largeur et hauteur), tout en gardant les proportions. Le mieux c'est de conserver l'original de côté (par exemple si le client veut pouvoir récupérer sa photo quand il le souhaite), et de n'utiliser sur le site que les versions redimensionnées. Tu pourras trouver de nombreux exemples de code sur le net, en voici un.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Déjà on note que tu n'as pas stocké tes photos dans la base de données, et c'est très bien !
    Pas vraiment d'accord.

    Autant sur les SGBD anciens et bas de gamme, le stockage de données binaires (donc images) est très peu recommandé, autant avec SQL Server (y compris Express) on trouve tous les outils pour stocker des images dans la base relationnelle sans pour autant plomber les performances de cette dernière.

    On gagne alors grandement en :
    - Simplicité de l'application : toujours bien plus simple de retrouver des données en faisant une jointure entre deux tables qu'en allant chercher sur le disque dur une arborescence stockée en base
    - Meilleure intégrité : on ne perd pas de données dans une base de données. Sur un disque dur, oui. Idem, pas de données orphelines dans une base relationnelle
    - Meilleures performances : si la base de données et les images ne sont pas stockées sur la même machine que l'application cliente, en un seul échange réseau on retrouve les images, alors que si on doit se palucher des accès UNC, c'est vite l'horreur
    - Meilleure sécurité : plus facile de protéger les informations dans une base de données que dans un disque dur
    - Simplicité de sauvegarde : une seule sauvegarde pour la base et les images. Plus simple pour restaurer des données suite à une panne, pas de déphasage.

    Bref, investiguez du côté de FILESTREAM de SQL Server.

    Sinon, pour réduire la taille physique de photos, pas 36 solutions :
    - réduire la résolution (au dela de 2048x2048, c'est superflu, à l'impression on ne voit pas la différence sur du A5)
    - augmenter la compression (format JPEG, PNG) : sur une photo correctement contrastée, on peut généralement compresser pas mal avant de voir apparaître des défauts visibles
    => Vous devriez pouvoir descendre à moins 500 Ko par photo sans perte visible en combinant les deux

    PS : Avec les trigger CLR de SQL Server, on peut même combiner les deux. Lors de l'insertion de la photo (taille originale) dans la base, on peut réduire à la volée une version optimisée, et stocker les deux images, le tout de façon totalement transparente pour le programme C#.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    +1 pour "les photos en base c'est mieux"
    (en plus c'est plus argumenté que "les photos en base c'est pas bien" ^^)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    +1 pour "les photos en base c'est mieux"
    (en plus c'est plus argumenté que "les photos en base c'est pas bien" ^^)
    Chacun a son opinion sur ce point.

    Personnellement je dirais que le système de fichiers est optimisé pour stocker des fichiers, tout comme le SGBDR est optimisé pour stocker des données relationnelles et gérer des ensembles de données. Donc oui FILESTREAM reste une très bonne option puisqu'il combine le meilleur des 2 mondes. Le stockage d'images en base n'a pas de sens puisque ces données ne peuvent pas réllement être exploitées par le SGBDR... Mais ici on ne parle pas du site de la FNAC, donc pas sûr que ca vaille la peine de rajouter de la complexité avec FILESTREAM, c'est pour cela que je ne l'ai pas mentionné ici.

    En plus le stockage des images directement en base, cela oblige à toujours passer par le SGBD pour pouvoir y accéder (pas d'accès direct).

    En tout cas dans les scénarios cloud, ou même en entreprise, stocker les images en base revient à augmenter le coût de ma base de données inutilement. Je préfère utiliser du stockage fichier (SAN/iSCSI) qui coûte bien moins cher, et donc FILESTREAM bien sûr. Autre bon point à noter pour Filestream, c'est le système de fichiers qui se charge de mettre en cache les données, ce qui laisse plus de mémoire (RAM) disponible pour gérer les requêtes. Donc là encore, on peut économiser et optimiser ses ressources.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Optimiser / réduire taille fichier Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 03/04/2020, 01h21
  2. Quelle optimisation en taille d'écran pour les sites
    Par JeanMi66 dans le forum Webdesign & Ergonomie
    Réponses: 26
    Dernier message: 16/09/2008, 22h37
  3. Réponses: 6
    Dernier message: 05/03/2008, 14h00
  4. [Image]Photos modification de la taille automatiquement ?
    Par chakan dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 29/03/2006, 04h04
  5. stockage de photos dans base de données ou dans un répertoir
    Par papy_tergnier dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 08/12/2005, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo