PHP Création et manipulation d'images

Slides:



Advertisements
Présentations similaires
SI28 FLASH MX Partie 1 Jérémy Dufetre - Ludovic Pilache.
Advertisements

A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 PHP Traitement Graphique.
FLSI602 Génie Informatique et Réseaux
11:20:16 Programmation Web PHP Création et manipulation d'images Jérôme CUTRONA
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Le langage Javascript pour le web
Méthode de suppression des cadres entourant les animations flash et activation automatique de leur focus lors du chargement des pages dans Internet Explorer.
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
AJAX.
OpenCV: Introduction au Traitement d’Images et Vidéo
La notion de type revisitée en POO
Développement PHP4 Programmation avancée. PHP niveau 2: le menu PHP niveau 2: le menu Programmation Objet Accès système de fichier Upload de fichiers.
Créer des packages.
Schéma de conception Factory Method Exemple Sylvain Giroux.
PHP5 objet "avancé" Jérôme CUTRONA 09:56:48 Programmation Web
 Formulaires HTML : traiter les entrées utilisateur
Les différents formats d'image
Bases de données Singleton pour la connexion
TRAITEMENT D’IMAGES Semaine 05. AGENDA DE LEÇON Documentation officielle d’OpenCV Écrire du texte Source vidéo TP1.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Image Ready. Plan 1. Présentation du logiciel 2. 5 points important 1. Transformation par souris 2. Optimisation d’image 3. Outil tranche 4. Outil carte.
INF2005– Programmation web– A. Obaid Les cartes. INF2005– Programmation web– A. Obaid Images cliquables Outil permettant d'effectuer des liens à partir.
David Geneix Eric Fontes.  Image Ready est le complément de Photoshop pour le traitement d’images pour le web  Fonctionnalités ◦ Optimiser une image.
Ajax1 A. Obaid - Programmation web (INF2005) AJAX.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Cours 08 SYSTÈME DE FICHIERS
Procédures Framework LDAP
I- ANALYSE DU BESOIN / Plan
Créer et optimiser un diaporama
I- ANALYSE DU BESOIN / Plan
Introduction au Langage Pascal
I- ANALYSE DU BESOIN / Plan
Pas de variable globale
Les notions de classe et d'objet
Pointeurs et langage C.
RESSOURCES 2D – 3D TECHNOLOGIE COLLEGE.
Traitement d’images Semaine 05.
Outils de gestion documentaire
Principes de programmation (suite)
Gestion dynamique de la mémoire : new / delete
SIF-1053 Architecture de ordinateurs
Principes de programmation (suite)
Le CSS Principe de séparation du contenu et de la mise en forme
Introduction à OpenCV GEL – Design III Charles du Tremblay
Excel XP - Lab #4 MET1421 HTML / Frontpage Daniel Gelinas.
Extension de fichiers*
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
Programmation en C++ C++ de base
AJAX et JQuery
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Kit de formation multimedia
PHP Création et manipulation d'images
Cours 5: Scripts Clients
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Jérôme CUTRONA PHP5 objet "avancé" Jérôme CUTRONA 03:07:13 Programmation Web
Catherine Cyrot - Cours bibliothèques numériquesz - cours 4
Programmation Web : DOM en PHP
Schéma de conception Factory Method Exemple
Principes de programmation (suite)
Conseils techniques pour votre PPT
Présentation Chaînage dynamique Retour sur les tableaux
Listes Chaînées.
Jérôme CUTRONA PHP objet Jérôme CUTRONA 08:30:34 Programmation Web
Bases de données Singleton pour la connexion
App Inventor trucs Afficher une image depuis le Web ou Google Drive.
Vision DÉFINITION   La vision par ordinateur ou vision artificielle est le traitement d’images par ordinateur provenant d’un dispositif extérieur tel.
Transcription de la présentation:

PHP Création et manipulation d'images Jérôme CUTRONA jerome.cutrona@univ-reims.fr 13:52:58 Programmation Web 2015-2016

Préambule L'utilisation habituelle de PHP consiste à produire des pages HTML. Grâce à la bibliothèque GD, PHP peut produire des images enregistrées sur disque ou directement transmises au navigateur du client. Formats d'images accessibles sont GIF, JPEG et PNG Possibilités offertes par la création/manipulation d'images en PHP : redimensionnement à la volée CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) insertion de texte dynamique 13:52:58 Programmation Web 2015-2016

Algorithme général de création Création d'une image : nouvelle à partir d'un fichier Manipulations de l'image dessin texte … Production de l'image finale : dans un fichier envoi vers le navigateur Libération mémoire 13:52:58 Programmation Web 2015-2016

Algorithme général de création <?php // Création $im = imageCreateTrueColor(100, 100) ; // Manipulations $red = imageColorAllocate($im, 255, 0, 0) ; imageFilledRectangle($im, 0, 0, 99, 99, $red) ; // Envoi vers le navigateur header('Content-Type: image/png') ; imagePNG($im) ; // Libération mémoire imageDestroy($im) ; 13:52:58 Programmation Web 2015-2016

Création d'une image (vide) resource imageCreate ( int width, int height ) construit une image vide de largeur width et de hauteur height et retourne son identifiant. L'image est à couleurs indexées. Retourne false en cas d'échec. resource imageCreateTrueColor ( int width, int height ) construit une image vide de largeur width et de hauteur height et retourne son identifiant. L'image est à couleurs "réelles" (24bits). Retourne false en cas d'échec. bool imageDestroy ( resource image ) libère la mémoire associée à image 13:52:58 Programmation Web 2015-2016

Création d'une image (fichier) resource imageCreateFromGIF ( string nom ) construit une image à partir du fichier GIF nom resource imageCreateFromJPEG ( string nom ) construit une image à partir du fichier JPEG nom resource imageCreateFromPNG ( string nom ) construit une image à partir du fichier PNG nom resource imageCreateFromGD[2] ( string nom ) construit une image à partir du fichier GD[2] nom 13:52:58 Programmation Web 2015-2016

Production d'une image bool imageGIF (resource image [, string fname]) construit un fichier GIF fname à partir de image bool imageJPEG (resource image [, string fname]) construit un fichier JPEG fname à partir de image bool imagePNG (resource image [, string fname]) construit un fichier PNG fname à partir de image bool imageGD[2] (resource image [, string fname]) construit un fichier GD[2] fname à partir de image  Si fname est absent, le contenu est transmis 13:52:58 Programmation Web 2015-2016

Allocation de couleurs int imageColorAllocate ( resource im, int R, int G, int B ) construit une couleur (R, G, B) pour l'image im et retourne son identifiant. 0 ≤ R ≤ 255 0 ≤ G ≤ 255 0 ≤ B ≤ 255 13:52:58 Programmation Web 2015-2016

Allocation de couleurs int imageColorAllocateAlpha ( resource im, int R, int G, int B, int A ) construit une couleur (R, G, B, A) pour l'image im et retourne son identifiant. 0 ≤ R ≤ 255 0 ≤ G ≤ 255 0 ≤ B ≤ 255 0 ≤ A ≤ 127 (transparence de la couleur) 13:52:58 Programmation Web 2015-2016

Copie redimensionnée d'images bool imageCopyResized ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h ) copie une portion rectangulaire de src_im dans une portion rectangulaire dst_im. Si les portions sont de taille différente, l'approximation se fait à l'échantillon le plus proche. bool imageCopyResampled ( … ) remplace l'approximation par un ré-échantillonnage 13:52:58 Programmation Web 2015-2016

Dessiner dans une image int imageColorAllocate ( resource image, int red, int green, int blue ) bool imageArc ( resource image, int cx, int cy, int width, int height, int start, int end, int color ) bool imageLine ( resource image, int x1, int y1, int x2, int y2, int color ) bool imageString ( resource image, int font, int x, int y, string s, int color ) 13:52:58 Programmation Web 2015-2016

Création d'images à la volée <img src="img.php" alt="Mon image" height="152" width="210"> Peut dépendre de paramètres GET : img.php?t=Coucou img.php?r=10&v=120&b=255 img.php?i=im.jpg … <?php // Création $im = imageCreate(100, 100) ; // Manipulations $red = imageColorAllocate($im, 255, 0, 0) ; imageFilledRectangle($im, 0, 0, 99, 99, $red) ; // Envoi vers le navigateur header('Content-Type: image/png') ; imagePNG($im) ; // Libération mémoire imageDestroy($im) ; 13:52:58 Programmation Web 2015-2016

Introduction d’une vision objet ? resource imageCreateTrueColor ( int width, int height ) int imageColorAllocate ( resource image, … bool imageArc ( resource image, … bool imageLine ( resource image, … bool imageString ( resource image, … bool imageDestroy ( resource image ) resource représente l’entité image manipulée 13:52:58 Programmation Web 2015-2016

Encapsulation objet class GDImage { // @var resource $_resource image identifier private $_resource = null ; private function __construct() { } public function __destruct() { if (!is_null($this->_resource)) imageDestroy($this->_resource) ; 13:52:58 Programmation Web 2015-2016

Encapsulation objet : usine public static function createFromSize($x, $y, $truecolor=true) { $x = (int) $x ; $y = (int) $y ; $resource = false ; if ($truecolor) $resource = @imageCreateTrueColor($x, $y) ; else $resource = @imageCreate($x, $y) ; if ($resource !== false) { $image = new self() ; $image->_resource = $resource ; return $image ; } else throw new LogicException("Failed to create GD resource") ; } 13:52:58 Programmation Web 2015-2016

Encapsulation objet : usine public static function createFromFile($filename, $filetype) { if (is_file($filename)) { if (in_array($filetype, self::$_factory_types)) { $functionName = 'imageCreateFrom' . $filetype ; $image = new self() ; if (($tmp = @$functionName($filename)) === false) { throw new Exception("unable to load file '{$filename}'") ; } $image->_resource = $tmp ; return $image ; } else throw new Exception("unknown filetype") ; } else throw new Exception("{$filename} : no such file") ; } 13:52:58 Programmation Web 2015-2016

Encapsulation objet : constantes /** * @var array */ private static $_factory_types = array( self::GD, self::GD2PART, self::GD2, self::GIF, self::JPEG, self::PNG, self::WBMP, self::XBM, self::XPM, ) ; 13:52:58 Programmation Web 2015-2016

Encapsulation objet : usine class GDImage { const GD = 'gd' ; const GD2PART = 'gd2part' ; const GD2 = 'gd2' ; const GIF = 'gif' ; const JPEG = 'jpeg' ; const PNG = 'png' ; const WBMP = 'wbmp' ; const XBM = 'xbm' ; const XPM = 'xpm' ; 13:52:58 Programmation Web 2015-2016

Création d'images : vision objet <img src="img.php" alt="Mon image" height="152" width="210"> Peut dépendre de paramètres GET : img.php?t=Coucou img.php?r=10&v=120&b=255 img.php?i=im.jpg … <?php require_once('gdimage.class.php') ; // Création $im  = GDImage::createFromSize(100, 100) ; // Manipulations $red = $im->colorAllocate(255, 0, 0) ; $im->filledRectangle(0, 0, 99, 99, $red) ; // Envoi vers le navigateur header('Content-type: image/png') ; $im->PNG() ; // Libération mémoire // Automatique, à la destruction de $im 13:52:58 Programmation Web 2015-2016

Comparaison non objet / objet <?php // Création $im = imageCreate(100, 100) ; // Manipulations $red = imageColorAllocate($im, 255, 0, 0) ; imageFilledRectangle($im, 0, 0, 99, 99, $red) ; // Envoi vers le navigateur header('Content-Type: image/png') ; imagePNG($im) ; // Libération mémoire imageDestroy($im) ; <?php require_once('gdimage.class.php') ; // Création $im  = GDImage::createFromSize(100, 100) ; // Manipulations $red = $im->colorAllocate(255, 0, 0) ; $im->filledRectangle(0, 0, 99, 99, $red) ; // Envoi vers le navigateur header('Content-type: image/png') ; $im->PNG() ; // Libération mémoire // Automatique, à la destruction de $im 13:52:58 Programmation Web 2015-2016