A voir également:
- Téléchargement - programmation d'experts
- Zone telechargement - Accueil - Outils
- Instagram telechargement pc - Télécharger - Divers Communication
- Application de programmation - Guide
- Téléchargement - Télécharger - PDF
- Dark world telechargement - Guide
7 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
11 avril 2011 à 23:07
11 avril 2011 à 23:07
Salut,
Et tu utilises la réécriture d'URL pour passer par le fichier PHP ?
Donc /images/example.png est en réalité /copy.php?file=example.png ?
(par exemple)
Dans ce cas, si l'image est affichée via /images/example.png, il n'y a pas de raison pour qu'en enregistrant, ça ne passe pas via le fichier PHP.
Il faudrait plus de détails pour trouver d'où vient le problème, avec ça, on ne peut rien faire.
Et tu utilises la réécriture d'URL pour passer par le fichier PHP ?
Donc /images/example.png est en réalité /copy.php?file=example.png ?
(par exemple)
Dans ce cas, si l'image est affichée via /images/example.png, il n'y a pas de raison pour qu'en enregistrant, ça ne passe pas via le fichier PHP.
Il faudrait plus de détails pour trouver d'où vient le problème, avec ça, on ne peut rien faire.
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 505
12 avril 2011 à 14:58
12 avril 2011 à 14:58
La réécriture d'URL permet de créer des 'alias'.
On utilise les expressions régulières (regex), et on peut utiliser les parenthèses capturantes pour créer des 'variables'. Et ces variables, on peut les utiliser pour indiquer la cible de l'alias.
Ainsi, si tu veux faire pointer
/images/example.png vers /watermark.php?filename=example.png,
On écrira ceci :
Mais en combinant AddHandler et Action, ça revient au même, sauf que on utilise $_SERVER['PATH_INFO']
On utilise les expressions régulières (regex), et on peut utiliser les parenthèses capturantes pour créer des 'variables'. Et ces variables, on peut les utiliser pour indiquer la cible de l'alias.
Ainsi, si tu veux faire pointer
/images/example.png vers /watermark.php?filename=example.png,
On écrira ceci :
RewriteEngine On RewriteRule ^images/(.+)$ /watermark.php?filename=$1 [L]Donc dans watermark.php, on peut utiliser $_GET['filename']
Mais en combinant AddHandler et Action, ça revient au même, sauf que on utilise $_SERVER['PATH_INFO']
DoulyCreations
Messages postés
187
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
23 mars 2015
19
11 avril 2011 à 22:51
11 avril 2011 à 22:51
Bonsoir,
En gros tu veut juste intégrer un texte ou une image sur l'image affichée sur le site sans que celle-ci en soit modifiée et que quand on veut l'enregistrer on a pas l'image d'origine mais celle modifiée "virtuellement" ?
En gros tu veut juste intégrer un texte ou une image sur l'image affichée sur le site sans que celle-ci en soit modifiée et que quand on veut l'enregistrer on a pas l'image d'origine mais celle modifiée "virtuellement" ?
Bonsoir
oui c'est exactement ça :)
je veux en fait qu'au téléchargement on ait le copyright. Je n'arrive à l'avoir qu'à l'affichage...
oui c'est exactement ça :)
je veux en fait qu'au téléchargement on ait le copyright. Je n'arrive à l'avoir qu'à l'affichage...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir !
Bon alors qq précisions :
à la racine de mon site, j'ai un fichier htaccess qui désigne un fichier (Watermark.php). C'est le fichier qui déclenche à l'affichage de n'importe quelle image du dossier la création d'une seconde image (c'est du texte chez moi) s'affichant sur la première.
ensuite je fais des liens tous bêtes et mes images s'affichent avec le copyright.
ça répond à tes questions?
Bon alors qq précisions :
à la racine de mon site, j'ai un fichier htaccess qui désigne un fichier (Watermark.php). C'est le fichier qui déclenche à l'affichage de n'importe quelle image du dossier la création d'une seconde image (c'est du texte chez moi) s'affichant sur la première.
addhandler WaterMark jpg gif jpeg action WaterMark /Photos/WaterMark.php
ensuite je fais des liens tous bêtes et mes images s'affichent avec le copyright.
ça répond à tes questions?
Salut,
Je te remercie de ta réponse, qui m'enchante car donc oui, selon toi, pour télécharger une image avec une watermark, il y a une possibilité. :)
Reste la mise en oeuvre, qui n'est pas une mince affaire car je débute...
J'ai essayé de modifier cette partie du coup (ds le fichier watermark.php):
en changeant aussi mes liens de fichier, mais sans succès...
:(
Je me permets de mettre des bouts de code... (dont le fichier complet de watermark) car je n'arrive pas à mettre en place la solution de AvionF16...
Si quelqu'un peut m'aider...
Lien type dans les autres fichiers :
Fichier .htaccess (à la racine du site)
Fichier Watermark.php
Je te remercie de ta réponse, qui m'enchante car donc oui, selon toi, pour télécharger une image avec une watermark, il y a une possibilité. :)
Reste la mise en oeuvre, qui n'est pas une mince affaire car je débute...
J'ai essayé de modifier cette partie du coup (ds le fichier watermark.php):
/* DOSSIER COURANT -> pour définir le nom de la watermark -> pour afficher le contenu d'un array : var_dump(pathinfo($_SERVER['SCRIPT_FILENAME'])); */
en changeant aussi mes liens de fichier, mais sans succès...
:(
Je me permets de mettre des bouts de code... (dont le fichier complet de watermark) car je n'arrive pas à mettre en place la solution de AvionF16...
Si quelqu'un peut m'aider...
Lien type dans les autres fichiers :
<a href="Photos/mon_image.png"><img src="Photos/miniatures/mon_image.png"/></a>
Fichier .htaccess (à la racine du site)
addhandler WaterMark jpg gif jpeg action WaterMark /Photos/WaterMark.php
Fichier Watermark.php
<?php /* WATERMARK_TYPE Type de watermark Valeurs: 'text' | 'image' WATERMARK_ALIGN_H Alignment horizontal Valeurs: 'left' | 'right' | 'center' WATERMARK_ALIGN_V Alignment vertical Valeurs: 'top' | 'bottom' | 'center' WATERMARK_MARGIN Excentrage à partir du bord. Valeurs: (en pixels) */ define('WATERMARK_TYPE', 'text'); define('WATERMARK_ALIGN_H', 'right'); define('WATERMARK_ALIGN_V', 'bottom'); define('WATERMARK_MARGIN', '5'); /* WATERMARK_IMAGE_FILE Chemin vers le fichier image employé comme watermark Valeur possible (chemin absolu ou relatif). WATERMARK_OPACITY Opacité de l'image. Valeurs: entre 0 et 100 */ define('WATERMARK_IMAGE_FILE', './wtmk.png'); define('WATERMARK_OPACITY', '60'); /* DOSSIER COURANT -> pour définir le nom de la watermark NB : split() découpe une lien_ige en un tableau de mots -> pour afficher le contenu d'un array : var_dump(pathinfo($_SERVER['SCRIPT_FILENAME'])); */ $wtmk_temp = 'Copyright "Mariage de Céline et Abdou" 03/2011, tous droits réservés. '; /* /* WATERMARK_TEXT Texte utilisé pour le copyright. WATERMARK_TEXT_FONT La police. Valeurs: de 1 à 5 WATERMARK_TEXT_SHADOW Police "black shadow". Valeurs: 'yes' | 'no' WATERMARK_TEXT_COLOR La couleur de la police Valeurs en décimal (ex: '255,255,255') ou hexadécimal (ex: '#ff4567') */ define('WATERMARK_TEXT', $wtmk_temp); define('WATERMARK_TEXT_FONT', '2'); define('WATERMARK_TEXT_SHADOW', 'yes'); define('WATERMARK_TEXT_COLOR', '#FFFFFF'); // FIN DE LA CONFIGURATION $original_image_file = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['PATH_INFO']; $original_image_info = getimagesize($original_image_file); if ($original_image_info) { $original_image_width = $original_image_info[0];//largeur $original_image_height = $original_image_info[1];//hauteur $original_image_imagetype = $original_image_info[2];//type de l'image $original_image_mime_type = $original_image_info['mime'];//type mime } else { header("Status: 500 Internal Server Error"); if ($_SERVER['REQUEST_METHOD'] != 'HEAD') { header("Content-Type: text/plain"); echo "WaterMark: Erreur lors de la lecture des propriétés des images de la galerie."; echo "Une ou plusieurs images sont tronquées par une signature d'entête.\n"; } exit; } if ($original_image_imagetype == IMAGETYPE_GIF) { header("Content-Type: " . $original_image_mime_type); readfile($original_image_file); exit; } elseif ($original_image_imagetype == IMAGETYPE_JPEG) { header("Content-Type: " . $original_image_mime_type); $source_image = imagecreatefromjpeg($original_image_file); } elseif ($original_image_imagetype == IMAGETYPE_PNG) { header("Content-Type: " . $original_image_mime_type); $source_image = imagecreatefrompng($original_image_file); } else { header("Status: 500 Internal Server Error"); if ($_SERVER['REQUEST_METHOD'] != 'HEAD') { header("Content-Type: text/plain"); echo "WaterMark: Format d'image non supporté\n"; } exit; } if (WATERMARK_TYPE == 'image' && WATERMARK_IMAGE_FILE != '' && file_exists(WATERMARK_IMAGE_FILE)) { $watermark_image_file = realpath(WATERMARK_IMAGE_FILE); $watermark_image_info = getimagesize($watermark_image_file); if ($original_image_info) { $watermark_image_width = $watermark_image_info[0]; $watermark_image_height = $watermark_image_info[1]; $watermark_image_imagetype = $watermark_image_info[2]; $watermark_image_mime_type = $watermark_image_info['mime']; } else { header("Status: 500 Internal Server Error"); if ($_SERVER['REQUEST_METHOD'] != 'HEAD') { header("Content-Type: text/plain"); echo "WaterMark: Erreur lors de a lecture des propriétés de l'image à incruster."; echo "L'image est tronquée par une signature d'entête.\n"; } exit; } if ($watermark_image_imagetype == IMAGETYPE_JPEG) { $watermark_image = imagecreatefromjpeg(WATERMARK_IMAGE_FILE); } elseif ($watermark_image_imagetype == IMAGETYPE_PNG) { $watermark_image = imagecreatefrompng(WATERMARK_IMAGE_FILE); } if ($watermark_image) { $watermark_y = WATERMARK_MARGIN; if (WATERMARK_ALIGN_V == 'top') { $watermark_y = WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_V == 'bottom') { $watermark_y = $original_image_height - $watermark_image_height - WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_V == 'center') { $watermark_y = (int)($original_image_height / 2 - $watermark_image_height / 2); } $watermark_x = WATERMARK_MARGIN; if (WATERMARK_ALIGN_H == 'left') { $watermark_x = WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_H == 'right') { $watermark_x = $original_image_width - $watermark_image_width - WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_H == 'center') { $watermark_x = (int)($original_image_width / 2 - $watermark_image_width / 2); } imagecopymerge( $source_image, $watermark_image, $watermark_x, $watermark_y, 0, 0, $watermark_image_width, $watermark_image_height, WATERMARK_OPACITY ); } } elseif (WATERMARK_TYPE == 'text' && WATERMARK_TEXT != '') { $color = WATERMARK_TEXT_COLOR; $red = hexdec(substr($color, 1, 2)); $green = hexdec(substr($color, 3, 2)); $blue = hexdec(substr($color, 5, 2)); $text_color = imagecolorallocate($source_image, $red, $green, $blue); $shadow_color = imagecolorallocate($source_image, 0, 0, 0); $text_height = imagefontheight(WATERMARK_TEXT_FONT); $text_width = strlen(WATERMARK_TEXT) * imagefontwidth(WATERMARK_TEXT_FONT); $watermark_y = WATERMARK_MARGIN; if (WATERMARK_ALIGN_V == 'top') { $watermark_y = WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_V == 'bottom') { $watermark_y = $original_image_height - $text_height - WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_V == 'center') { $watermark_y = (int)($original_image_height / 2 - $text_height / 2); } $watermark_x = WATERMARK_MARGIN; if (WATERMARK_ALIGN_H == 'left') { $watermark_x = WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_H == 'right') { $watermark_x = $original_image_width - $text_width - WATERMARK_MARGIN; } elseif (WATERMARK_ALIGN_H == 'center') { $watermark_x = (int)($original_image_width / 2 - $text_width / 2); } if (WATERMARK_TEXT_SHADOW == 'yes') { imagestring( $source_image, WATERMARK_TEXT_FONT, $watermark_x + 1, $watermark_y + 1, WATERMARK_TEXT, $shadow_color ); } imagestring( $source_image, WATERMARK_TEXT_FONT, $watermark_x, $watermark_y, WATERMARK_TEXT, $text_color ); } else { header("Status: 500 Internal Server Error"); if ($_SERVER['REQUEST_METHOD'] != 'HEAD') { header("Content-Type: text/plain"); echo "WaterMark: Erreur de configuration\n"; } exit; } if ($original_image_imagetype == IMAGETYPE_JPEG) { imagejpeg($source_image,null,100); } elseif ($original_image_format == IMAGETYPE_PNG) { imagepng($source_image,null,100); } ?>