1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

signature sur image

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sigma2008, 27 Décembre 2014.

  1. sigma2008
    sigma2008 WRInaute impliqué
    Inscrit:
    18 Juin 2008
    Messages:
    751
    J'aime reçus:
    4
    Bonsoir,

    J'enregistre des images sur le serveur grace à php mais (imagejpeg) je souhaite maintenant ajouter une signature à l'image avant d'enregistrer (text en bas de l'image un peu transparent). Possible ?

    Merci
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 759
    J'aime reçus:
    234
    watermark.php
    PHP:
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />$watermarkimage</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"watermark.png"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">//$file = basename($_GET['i']);<br /><br /></span><span class="syntaxdefault">$scriptDir </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'SCRIPT_FILENAME'</span><span class="syntaxkeyword">]);<br /><br /></span><span class="syntaxdefault">$image </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $scriptDir</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'i'</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">$watermark </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $scriptDir</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$watermarkimage</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$im </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefrompng</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$watermark</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">$ext </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$image</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strtolower</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ext</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'gif'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$im2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefromgif</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$image</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Error opening $image!"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> exit</span><span class="syntaxkeyword">;<br />}<br />}</span><span class="syntaxdefault"> else if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strtolower</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ext</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'jpg'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$im2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefromjpeg</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$image</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Error opening $image!"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> exit</span><span class="syntaxkeyword">;<br />}<br />}</span><span class="syntaxdefault"> else if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strtolower</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$ext</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'png'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$im2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefrompng</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$image</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Error opening $image!"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> exit</span><span class="syntaxkeyword">;<br />}<br />}</span><span class="syntaxdefault"> else </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Error'</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">imagefilledrectangle</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0 </span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">))-(</span><span class="syntaxdefault">imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> imagesx</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> imagecolorallocatealpha</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 100</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">imagecopy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $im</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imagesx</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">)-(</span><span class="syntaxdefault">imagesx</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">))),</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">))-(</span><span class="syntaxdefault">imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">)),</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> imagesx</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> imagesy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">$last_modified </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> gmdate</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'D, d M Y H:i:s T'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> filemtime </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$image</span><span class="syntaxkeyword">));<br /><br /></span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Last-Modified: $last_modified"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Content-Type: image/jpeg"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">imagejpeg</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">NULL</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">95</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">imagedestroy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">imagedestroy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$im2</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">?><br /></span></span>
    .htaccess
    Code:
    RewriteEngine on
    RewriteRule ^(.*\.[jJ].*)$ watermark.php?i=$1
    Sinon:
    http://phpimageworkshop.com/tutorial/1/adding-watermark.html
    http://www.phpjabbers.com/put-watermark-on-images-using-php-php20.html
    http://www.sitepoint.com/watermarking-images/
    ...
     
  3. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 874
    J'aime reçus:
    71
  4. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 436
    J'aime reçus:
    0
    en fait, le problème que j'ai avec les watermarks automatiques, c'est que je n'ai pas réussi à trouver comment gérer la couleur/transparence en fonction de la photo : si on a une photo de sable sur la plage, un watermark trop clair ne passera pas, mais un trop sombre tranchera trop. Et réciproquement si on a un fond sombre (genre sous-bois)
     
  5. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 196
    J'aime reçus:
    1
    l'écriture sur ombrage permet de palier ce souci mais c'est moins beau qu'un watermark image.
     
  6. Ajan
    Ajan WRInaute discret
    Inscrit:
    10 Août 2003
    Messages:
    181
    J'aime reçus:
    0
    Une méthode qui donne des résultats corrects dans la plupart des cas (si la luminosité de la zone où tu places le watermark est relativement homogène):

    Tu crées un watermark blanc et un noir (sur fond transparent).
    Tu détermines le rectangle de la photo sur lequel le watermark va s'appliquer et tu le copies dans une autre image.
    Sur cette image tu appliques le filtre grayscale : imagefilter($image, IMG_FILTER_GRAYSCALE)
    Les 3 composantes de couleur de chaque pixel ont alors la même valeur comprise entre 0 et 255.
    Tu moyennes ces valeurs pour tous le pixels du rectangle.
    Si la moyenne est inférieure ou égale à 128 sur applique le watermark blanc
    Si la moyenne est superieure à 128 sur applique le watermark noir

    Après si tu as peur que cela tranche trop dans certains cas, tu peux créer d'autres watermarks intermédiaire et jouer sur plus de plages de sélections...
     
  7. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 436
    J'aime reçus:
    0
    ça me parait pas mal comme méthode. Dès que j'ai un peu de temps je testerais.
    en fait, au début je mettais le watermark pour ne pas qu'on copie mes images, alors qu'ensuite c'était, justement, pour qu'on puisse partager mes images mais que ça puisse faire de l'auto promo pour mes sites, grâce au watermark
     
  8. Ajan
    Ajan WRInaute discret
    Inscrit:
    10 Août 2003
    Messages:
    181
    J'aime reçus:
    0
    Moi c'est essentiellement pour la deuxième raison. Comme on ne peut pas vraiment éviter de se faire copier les images en hot link, autant que cela fasse de la promo.

    Pour un watermark 'antivol', qui couvre généralement une grande partie de l'image en semi-transparence, la méthode que j'ai donnée ne marche pas trop (la moyenne de luminosité n'est pas significative). Mais pour un petit watermark dans un coin, cela donne un résultat en général acceptable.
     
Chargement...
Similar Threads - signature image Forum Date
Fonction mail() et signature DKIM Développement d'un site Web ou d'une appli mobile 18 Mai 2019
Signature DKIM pour multiples serveurs d'envoi Gmail, Google Talk, Blogger et Orkut 15 Janvier 2019
Quelle signature pour cette fonction de mail ? Développement d'un site Web ou d'une appli mobile 12 Octobre 2018
Signature sur site de clients en Dofollow ou Nofollow ? Débuter en référencement 7 Avril 2017
Désindexation de signatures mail hébergées sur mon site Crawl et indexation Google, sitemaps 19 Décembre 2016
Affichage d'une signature sur Twitter Twitter 29 Août 2016
Signature des articles Rédaction web et référencement 7 Juillet 2015
Signature DKIM et Gmail Gmail, Google Talk, Blogger et Orkut 6 Juillet 2015
droit de rétractation BtoB dans la semaine qui suit la signature d'un contrat? Droit du web (juridique, fiscalité...) 27 Mars 2015
Les liens dofollow en signature de forum Débuter en référencement 31 Décembre 2014
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice