2.14. PHP – Manipulação de imagens
Transcrição
2.14. PHP – Manipulação de imagens
Programação para a Internet II 2.14. PHP – Manipulação de imagens Nuno Miguel Gil Fonseca [email protected] PHP – Hypertext Preprocessor Manipulação de imagens Criação de imagens em run-time Antes de começar, é necessário descomentar a linha extension=php_gd2.dll no ficheiro php.ini Em PHP criar imagens em run-time é bastante simples. <?php header("Content-type: image/png"); $im = @imagecreate(110, 20) or die("Erro ao iniciar imagem"); $background_color = imagecolorallocate($im, 0, 0, 0); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, "Texto", $text_color); imagepng($im); // imagepng($im,"imagem.png"); imagedestroy($im); ?> Tenha em atenção que o ficheiro PHP em que é gerada a imagem apenas pode ter código PHP! Não pode ter qualquer código HTML, nem sequer podem ser feitos print, echo, etc. Para além disso, não pode existir nenhuma linha em branco antes de <?php. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 2 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Criação de imagens em run-time (cont.) Carregar uma imagem já existente <?php header("Content-type: image/png"); $im = imagecreatefrompng("button.png") or die("Erro ao iniciar imagem"); $imagesize = getimagesize("button.png"); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5,"Texto", $text_color); imagepng($im); // imagepng($im,"imagem.png"); imagedestroy($im); ?> Tenha em atenção que o ficheiro PHP em que é gerada a imagem apenas pode ter código PHP! Não pode ter qualquer código HTML, nem sequer podem ser feitos print, echo, etc. Para além disso, não pode existir nenhuma linha em branco antes de <?php. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 3 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Criação de imagens em run-time (cont.) Inserir uma imagem dentro de outra bool imagecopy ( resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h ) <?php header("Content-type: image/png"); $im = imagecreatefrompng("destino.png") or die("Erro ao iniciar imagem"); $im_a_inserir = imagecreatefrompng("inserir.png") or die("Erro!"); imagecopy( $im, $im_a_inserir, 30, 56, 1, 1, 33, 33); imagepng($im); // imagepng($im,"imagem.png"); imagedestroy($im); ?> Tenha em atenção que o ficheiro PHP em que é gerada a imagem apenas pode ter código PHP! Não pode ter qualquer código HTML, nem sequer podem ser feitos print, echo, etc. Para além disso, não pode existir nenhuma linha em branco antes de <?php. (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 4 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Criação de imagens em run-time (cont.) Criar uma cor (a primeira vez que é chamada, define a cor de fundo) <?php $white = imagecolorallocate($im, 255, 255, 255); ?> Desenho de um ponto <?php imagesetpixel($im, 5, 6, $white); ?> Desenho de linhas <?php imageline($im, 0, 0, 255, 255, $white); ?> Desenhar um rectângulo <?php imagefilledrectangle($im, 10, 10, 390, 290, $white); ?> Inserir texto <?php imagestring($im, 1, 5, 5, "Texto", $black ); ?> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 5 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Criação de imagens em run-time (cont.) Usar uma imagem criada dinamicamente num ficheiro HTML. Assumindo que temos um ficheiro chamado imagem.php contento o código apresentado no slide número 6, para inserir a imagem resultante num ficheiro HTML, necessitaríamos de fazer: <html> <head> </head> <body> <img src="imagem.php"> </body> </html> (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 6 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Criação de imagens em run-time (cont.) Abrir imagens de outros formatos (além do PNG) imagecreatefromgif, imagecreatefromjpeg Gerar imagens em outros tipo (além do PNG) imagegif, imagejpeg Desenhar outras formas geométricas imagefilledellipse, imagefilledarc, imageellipse, imagearc, imagerectangle Desenhar formas geométricas complexas Imagefilledpolygon, imagepolygon (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 7 PHP – Hypertext Preprocessor Manipulação de imagens (cont.) Lista completa de funções de manipulação de imagem http://pt.php.net/manual/en/ref.image.php (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II 8