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

PHP & Base de données Discussion :

fond transparent php


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut fond transparent php
    bonjour à tous

    je créer image que je superpose sur une image source.

    la deuxieme image à un fond blanc que j'aimerai rendre transparent j'ai essayer un code que j'ai vue sur phpmanuel mais cela ne fonctionne pas auriez vous une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $petit = imagecreatefrompng($url); 
     
     
            $carte = Imagecreatefrompng($pathSoucre);
            $textcolor = imagecolorallocate($carte, 225, 29, 72);
    		$black = imagecolorallocate($petit, 255, 0, 0);
            $name = "carte_".$number."_.png";
            $sizeCenter = (330 - (strlen($number)*10))/2;
    		$sizeCenterli = (330 - (strlen($url)*10))/2;
     
    		imagecolortransparent($petit, $black);
            imagestring($carte, 5, 700+$sizeCenter, 210, $number, $textcolor);
     
    		imagecopy ($carte,$petit,670+$sizeCenter,300,0,0,130,130 );
     
     
     imagepng($carte,$cheminSave.$name);

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tu ne peux pas rendre une image transparente si ton fichier source à un fond blanc. En théorie tu pourrais parcourir chaque pixel et copier dans une nouvelle image à fond transparent chaque pixel qui ne sont pas blanc , mais il est plus simple de simplement modifier ton image source.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    la premiere image est une carte dont le fichier source est en png,

    la deuxieme image est un qr code créer en php converti en image puis collé sur l'image source avec imagecopy

    et c'est bien le fond du qr code que j'ai en fond blanc que j'aimerai convertie en fond transparant

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Il faudrait donc voir le code de création de ton QR code.
    Souvent les problème de transparence sont liés à l'oubli de l'utilisation de imagesavealpha
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    voila la page complete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <?php
    session_start();
    $iduser = $_SESSION["id_user"];
        include("../mysqlcon.php");
        $ans = ["operation" => false,"name" => ""];
        $num = (isset($_POST["numero"]) && !empty($_POST["numero"]) && is_numeric($_POST["numero"]))?$_POST["numero"]:false;
     
        $q = "Select COUNT(*) as carteok from commande where numerocarte='$num'";
        $q = $conn->query($q);
        $f = mysqli_fetch_array($q);
        $numok = $f["carteok"];
     
    	  //set it to writable location, a place for temp generated PNG files
        $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'phpqrcode/temp'.DIRECTORY_SEPARATOR;
     
        //html PNG location prefix
        $PNG_WEB_DIR = 'phpqrcode/temp/';
     
        include "phpqrcode/qrlib.php";    
     
        //ofcourse we need rights to create temp dir
        if (!file_exists($PNG_TEMP_DIR))
            mkdir($PNG_TEMP_DIR);
     
     
        $filename = $PNG_TEMP_DIR.'test.png';
     
        //processing form input
        //remember to sanitize user input in real-life solution !!!
        $errorCorrectionLevel = 'L';
        if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
            $errorCorrectionLevel = $_REQUEST['level'];    
     
        $matrixPointSize = 4;
        if (isset($_REQUEST['size']))
            $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 10);
     
     
    		$lien = $iduser;
     
     
            //it's very important!
            if (trim($lien) == '')
                die('data cannot be empty! <a href="?">back</a>');
     
            // user data
     
            $filename = $PNG_TEMP_DIR.'test'.md5($lien.'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
            QRcode::png($lien, $filename, $errorCorrectionLevel, $matrixPointSize, 2);   
     
    		$liens = $PNG_WEB_DIR.basename($filename);
     
      if($numok == 1){
            $ans["operation"] = true;
            $ans["name"] = createCarte("source.png",$num,"allCarte/",$liens);
     
    		$qu = "UPDATE commande SET carteok = 'ok', choix='duo' WHERE numerocarte='$num'";
    		$qu = $conn->query($qu);
     
     
        } 
        echo json_encode($ans);
     
     
     
     
        function createCarte($pathSoucre,$number,$cheminSave,$url)
        {
     
    		$petit = imagecreatefrompng($url); 
     
     
            $carte = Imagecreatefrompng($pathSoucre);
            $textcolor = imagecolorallocate($carte, 225, 29, 72);
     
            $name = "carte_".$number."_.png";
            $sizeCenter = (330 - (strlen($number)*10))/2;
    		$sizeCenterli = (330 - (strlen($url)*10))/2;
     
            imagestring($carte, 5, 700+$sizeCenter, 210, $number, $textcolor);
    		imagealphablending($carte, true); 
    imagesavealpha($carte, true); 
     
    		imagecopy ($carte,$petit,670+$sizeCenter,300,0,0,100,100 );
     
     
     imagepng($carte,$cheminSave.$name);
            return $name;
        }
    ?>

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Y'a tout sauf ce qui te pose problème : la création du QRCode qui semble fait par QRcode::png(...).

    Tu utilise une lib ou c'est tout toi qui gère la génération ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    de la ligne 13 a 51 tu as le code de la generation, c'est une librairie qui est utilisé

    l'image du qr code est ensuite generé en php dans la focntion createcarte

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    C'est donc bien ce que je disais , c'est la librairie qui te génère le png avec un fond non transparent.
    Tu ne peux donc pas le rendre transparent à moins que la librairie le permette via un paramétrage spécifique.

    Note : en regardant vite fait la doc , ca semble possible en utilisant un générateur custom :
    http://phpqrcode.sourceforge.net/exa...hp?example=711 ( c'est du jpeg mais j'imagine que c'est pareil en png)

    Note2 : La lib ne semble plus maintenu depuis 2013 , pas certains que ce soit un bon choix pour de la production en 2020
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 14
    Dernier message: 13/10/2005, 15h00
  2. Image avec fond transparent
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2005, 11h48
  3. Rendre le fond transparent dans une picturebox
    Par fun31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2005, 18h17
  4. Image GIF a fond transparent dans un formulaire ?
    Par Coquelicot dans le forum IHM
    Réponses: 4
    Dernier message: 25/10/2004, 12h08
  5. [JButton] avec un fond transparent
    Par Tiercel dans le forum Composants
    Réponses: 6
    Dernier message: 23/09/2004, 09h19

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