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

Documentos relacionados