begin process at 2012 05 27 17:56:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > [PHP4] AJOUTER UN COPYRIGHT DANS UNE IMAGE - CLASS ADDCOPYRIGHT

[PHP4] AJOUTER UN COPYRIGHT DANS UNE IMAGE - CLASS ADDCOPYRIGHT


 Information sur la source

Note :
9,83 / 10 - par 6 personnes
9,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :10/06/2005 Vu :6 080

Auteur : Isoth0p

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Cette class parcourt vos dossiers et indexe les fichiers image avant d'y insérer un copyright avec votre nom ou encore l'adresse de votre site Web. Ce copyright est invisible en apparence. En effet il n'altère pas la qualité de vos images et s'inscrit directement à la fin du fichier, dans la partie non-interprétée de l'image. Il reste toutefois facile à dénicher, il vous suffira d'ouvrir votre image avec un éditeur de texte.

Ce code fut conçu pour un ami qui à eu un énorme problème de "pillage" de tutoriaux (tutoriaux à base de screen shots) mais n'a pas pû prouver la possession de ceux-ci.

En espérant que ce code vous sera utile.

Source

  • <?php
  • // Pas de limite de temps à l'execution
  • set_time_limit( 0 );
  • // Reporte toutes les erreurs
  • error_reporting( E_ALL );
  • // class AddCopyright
  • class AddCopyright
  • {
  • // Format du copyright
  • var $copyright = '© Copyright %s. Tous droits réservés.';
  • // Initialisation du tableau contenant les fichiers
  • var $files = array();
  • // Filtres
  • var $ignore = array( '.', '..' );
  • // Constructeur
  • function AddCopyright( $owner, $path = '.' )
  • {
  • // Formatte le copyright
  • $this->copyright = sprintf( $this->copyright, $owner );
  • // Recherche les fichiers image
  • $this->CheckFiles( $path );
  • // Pour chaque fichier ...
  • foreach ( $this->files as $file )
  • {
  • // ... insère le copyright
  • $this->WriteCopy( $file );
  • }
  • // Affiche un message de fin
  • echo 'Copyright inséré !';
  • }
  • // Recherche les fichiers image
  • function CheckFiles( $path )
  • {
  • // Ouvre le répertoire courant ...
  • $dp = opendir( $path );
  • // ... et le lit
  • while ( ( $file = readdir( $dp ) ) !== false )
  • {
  • // Filtre les répertoires/fichiers contenu dans
  • // le tableau $ignore
  • if ( !in_array( $file, $this->ignore ) )
  • {
  • // Si le fichiers lu est un dossier, ...
  • if ( is_dir( $path . '/' . $file ) )
  • {
  • // on l'ouvre en appelant de nouveau la
  • // fonction Checkfiles()
  • $this->CheckFiles( $path . '/' . $file );
  • }
  • // Sinon
  • elseif
  • (
  • is_file( $path . '/' . $file )
  • &&
  • // Si le fichier est bien une image
  • (
  • substr( $file, strlen( $file ) - 3, 3 ) == 'png'
  • ||
  • substr( $file, strlen( $file ) - 3, 3 ) == 'gif'
  • ||
  • //!\\ Attention, je n'ai pas testé sur
  • //!\\ le format JPEG !
  • substr( $file, strlen( $file ) - 3, 3 ) == 'jpg'
  • )
  • )
  • {
  • // Onm l'indexe dans le tableau $files
  • $this->files[] = $path . '/' . $file;
  • }
  • }
  • }
  • // On ferme le répertoire
  • closedir( $dp );
  • }
  • // Insère le copyright dans une image
  • function WriteCopy( $file )
  • {
  • // Ouvre le fichier image en mode "ajouter"
  • $fp = fopen( $file, 'a' );
  • // Insère le copyright
  • fwrite( $fp, $this->copyright );
  • // Ferme le fichier
  • fclose( $fp );
  • }
  • }
  • // Utilisation de la classe relativement simple, il vous
  • // suffit simplement de placer le script à la racine de
  • // site/dossier et de l'exécuter. Le 2ème paramètre est
  • // obtionnel.
  • // Notez qu'il suffit que d'une seule ligne.
  • //
  • // Prennez soin de faire des copies de vos images avant
  • // d'y insérer le copyright sinon en cas de réutilisation
  • // du script, il serait ajouté une 2ème fois !
  • $copy = new AddCopyright( 'Votre nom ou l\'adresse de votre site web', '.' );
  • ?>
<?php

// Pas de limite de temps à l'execution
set_time_limit( 0 );

// Reporte toutes les erreurs
error_reporting( E_ALL );


// class AddCopyright
class AddCopyright
{
	// Format du copyright
	var $copyright = '© Copyright %s. Tous droits réservés.';
	
	// Initialisation du tableau contenant les fichiers
	var $files = array();
	
	// Filtres
	var $ignore = array( '.', '..' );

	// Constructeur
	function AddCopyright( $owner, $path = '.' )
	{
		// Formatte le copyright
		$this->copyright = sprintf( $this->copyright, $owner );
		// Recherche les fichiers image
		$this->CheckFiles( $path ); 
		
		// Pour chaque fichier ...
		foreach ( $this->files as $file )
		{
			// ... insère le copyright
			$this->WriteCopy( $file );
		}
		
		// Affiche un message de fin
		echo 'Copyright inséré !';
	}
	
	// Recherche les fichiers image
	function CheckFiles( $path )
	{
		// Ouvre le répertoire courant ...
		$dp = opendir( $path );
		// ... et le lit
		while ( ( $file = readdir( $dp ) ) !== false )
		{
			// Filtre les répertoires/fichiers contenu dans
			// le tableau $ignore
			if ( !in_array( $file, $this->ignore ) )
			{
				// Si le fichiers lu est un dossier, ...
				if ( is_dir( $path . '/' . $file ) )
				{
					// on l'ouvre en appelant de nouveau la
					// fonction Checkfiles()
					$this->CheckFiles( $path . '/' . $file );
				}
				// Sinon
				elseif
				(
					is_file( $path . '/' . $file )
						&&
					// Si le fichier est bien une image
					(
					substr( $file, strlen( $file ) - 3, 3 ) == 'png'
						||
					substr( $file, strlen( $file ) - 3, 3 ) == 'gif'
						||
					//!\\ Attention, je n'ai pas testé sur
					//!\\ le format JPEG !
					substr( $file, strlen( $file ) - 3, 3 ) == 'jpg'
					)
				)
				{
					// Onm l'indexe dans le tableau $files
					$this->files[] = $path . '/' . $file;
				}
			}
		}

		// On ferme le répertoire
		closedir( $dp );
	}
	
	// Insère le copyright dans une image
	function WriteCopy( $file )
	{
		// Ouvre le fichier image en mode "ajouter"
		$fp = fopen( $file, 'a' );
		// Insère le copyright
		fwrite( $fp, $this->copyright );
		// Ferme le fichier
		fclose( $fp );
	}
}

// Utilisation de la classe relativement simple, il vous
// suffit simplement de placer le script à la racine de
// site/dossier et de l'exécuter. Le 2ème paramètre est
// obtionnel.
// Notez qu'il suffit que d'une seule ligne.
//
// Prennez soin de faire des copies de vos images avant
// d'y insérer le copyright sinon en cas de réutilisation
// du script, il serait ajouté une 2ème fois !
$copy = new AddCopyright( 'Votre nom ou l\'adresse de votre site web', '.' );

?>

 Conclusion

Je n'ai actuellement ressencé aucun bug.
Je ai seulement testé ce script sur les formats PNG et GIF mais que pense que cela doit aussi fonctionner pour le JPEG. Pour ce qui est du BMP, TIFF, TGA, mais espoirs sont moindres ...


 Sources du même auteur

ALGORITHME DE CRYPTAGE SIMPLE
CHECKSUMS ET IPV4

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

Commentaires et avis

Commentaire de Anthomicro le 11/06/2005 09:06:15

Salut,

mets un arobase à ta fonction set_time_limit() car elle est souvent désactivée par les hébergeurs mutualisés.

@set_time_limit(0);

Ensuite c'est un bon code simple et assez bien codé.

a +

Commentaire de philty le 15/06/2005 12:53:19

Salut, bravo et merci !
Je me demandais comment j'allais faire pour mettre un copyright sur mes photos, j'ai trouvé :)

Commentaire de c v le 13/03/2007 12:00:40

Très fort, le copyright n'est pas standard donc il ne peut être enlevé que manuellement.

Au lieu de mettre ça :
//!\\ Attention, je n'ai pas testé sur
//!\\ le format JPEG !

Tu peux mettre ça :
||  substr( $file, strlen( $file ) - 4, 4 ) == 'jpeg'

Moi aussi je déteste les extensions en majuscule, mais beaucoup d'appareil photo adore ça :
pour les extensions jpg,JPG,gif,GIF,png,PNG,jpeg,JPEG :

strtolower( substr( $file, strlen( $file ) - 3, 3 ) ) == 'png'
||
strtolower( substr( $file, strlen( $file ) - 3, 3 ) ) == 'gif'
||
strtolower( substr( $file, strlen( $file ) - 3, 3 ) ) == 'jpg'
||
strtolower( substr( $file, strlen( $file ) - 4, 4 ) ) == 'jpeg'

(ça marche aussi sur les gif animés)

10/10 + Merci.

Commentaire de c v le 13/03/2007 12:36:51

Les moins : copyright non standard, donc les logiciels ne les gardes pas, si après insertion du copyright vous re-enregistrez l'image (même sans la modifier avec la même extension) ce copyright disparait, de même si vous utilisez l'image avec la librairie GD .... il serait bien d'additionner ce script à une insertion format ipct et eexif.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales