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

Langage PHP Discussion :

Miniature avec un fond noir.


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut Miniature avec un fond noir.
    Bonjour,

    Actuellement, j'arrive à créer une miniature d'une taille fixe de 120 de haut et 80 de large. Mais j'essaie de faire une miniature avec un fond noir, et qeu l'image à l'interieur de cette miniature reste proportionnelle.
    Donc si l'image ne rentre pas tout à fait dans le carré de 120*80, le reste devrait être noir à cause du fond.



    <?php
    // Création de la miniature
    // ==================================================================================
    $fichierSource = $chemin.$nom_du_fichiers;
    // Hauteur de largeur de la miniature
    $largeurDestination = 120;
    $hauteurDestination = 80;
    // Création de la miniature
    $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination) or die ("Erreur lors de la création de l'image");
    // Lecture de l'image source
    $source = ImageCreateFromJpeg($fichierSource);
    // PNG $source = ImageCreateFromPng($fichierSource);
    $largeurSource = imagesx($source); // Définition de la largeur de l'image source
    $hauteurSource = imagesy($source); // Définition de la hauteur de l'image source

    ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);

    // Nom de la miniature
    $img_nom_m = 'm_' . $nom_du_fichiers;
    // Enregistrement de la miniature sur le serveur
    ImageJpeg($im,$chemin . $img_nom_m,100);
    // PNG ImagePng($im,$chemin . $img_nom_m);

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, excuse-moi, mais quel est ton problème ? Tu as des erreurs (dans ce cas, quels sont les messages) ? Tu n'arrives pas au résultat que tu souhaites (qu'est-ce que tu obtiens, qu'est-ce que tu attends) ?...

  3. #3
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Je cherche à mettre un fond noir et réduire l'image proportionnellement à ca taille d'origine.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    suis pas en forme, donc je ne te fais que des copies de mon code, brut tel quel, sans modif. A toi de t'en inspirer :

    copie de mon script de création de miniature, pour garder la proportionnalité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // dimension de la photo originale
    list($breedte,$hoogte,$type) = getimagesize($foto);
    // dimension de la miniature (selon portrait, paysage ou carrée)
    if ( $breedte == $hoogte ) $hauteur = 128; 
       elseif ( $breedte > $hoogte ) $hauteur = 96; 
       else $hauteur = 128;
    $largeur = round ( $breedte/$hoogte*$hauteur);
    // création des sources et destination
    $src = imagecreatefromjpeg($foto); // La photo est la source
    $dst = imagecreatetruecolor($largeur, $hauteur); // On crée la miniature vide
    // création et enregistrement de la miniature
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $largeur, $hauteur, $breedte, $hoogte);
    imagejpeg($dst, $mini);
    car avec ton code, l'image fera toujours 120*80 quel que soient ses proportions initiales

    copie de mon code html avec une classe nommée galerie_mixte, fond gris, miniature en haut et texte explicatif de la photo en dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h5 class="galerie_mixte" style="width:85px;">
       <a href="foto.php?appel=album&amp;foto=eve_200603_lit.jpg">
       <img src="dossier_mini/eve_200603_lit.jpg" width="85" height="128" title="Eve" alt="Eve"></a>
       <br />Eve debout près de son lit à huit mois</h5>
    les dimensions de 85*128 sont calculées avec php en fonction des dimensions de ma miniature, pour toi cela sera 120*80. ne t'occupe pas du lien foto.php, c'est pour voir la photo en grande taille.

    copie du css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .galerie_mixte
    {
    float: left; 
    margin: 5px;
    /*border: 1px solid #000000;*/
    background-color: #E2E8E2;
    text-align: left;
    height: 17em;
    vertical-align:center;
    }
    c'est en float left car c'est une galerie

    j'espère que cela t'aidera

  5. #5
    Membre averti Avatar de Space Cowboy
    Homme Profil pro
    chomeur
    Inscrit en
    Avril 2005
    Messages
    496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Avril 2005
    Messages : 496
    Points : 401
    Points
    401
    Par défaut
    Arg, j'était tellement partie dans mon trip de fond noir, que je n'ai pas pensé à le mettre avec CSS ...

    Ce que j'ai fni par vouloir faire.
    • Calculer les dimensions de la miniature en respectant les proportion.
    • Créer la miniatures avec les proportions.
    • Copier l'image source dans la miniature de destination en redimensionnant.
    • Créer une miniature avec un fond noir et de taille fixe.
    • Copy la miniature dans la nouvelle miniature.


    Ce que je vais faire.
    • Créer la miniature proportionnelle.
    • La mettre dans un div, qui aura un fond noir et une taille fixe ...

    C'est plus simple !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Anti-aliasing sur fond noir avec la bibliothèque BGRABitmap
    Par Roland Chastain dans le forum Lazarus
    Réponses: 10
    Dernier message: 05/07/2015, 10h02
  2. [XL-2007] Probleme impression optionbutton avec fond noir
    Par Sbifouille31 dans le forum Excel
    Réponses: 1
    Dernier message: 02/03/2015, 10h48
  3. Rollover avec superposition fond noir transparent et texte sur une image
    Par altair8080 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/08/2013, 00h32
  4. Couleur de fond noire avec Image.Save
    Par olibara dans le forum C#
    Réponses: 8
    Dernier message: 11/08/2008, 14h47
  5. Coloration syntaxique pour java avec fond noir
    Par thibal_kamehouse dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 02/05/2007, 16h58

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