Arredondar Cantos De Uma Imagem, Tem Como?
#1
Posted 02/01/2006, 14:59
tenho uma dúvida: é possivel arredondar os cantos de uma imagem com php?
exemplo: tenho uma imagem de 119x90 e quero deixar a bordar redonda. como posso fazer?
tentei fazer já de um outro jeito, que foi deixando a foto como fundo da tabela e jogando uma imagem com as bordas e fundo transparente por cima, mais as bordas ficam serrilhadas dai nem rolo
podem me ajudar?
valeuu
www.glaucomaschio.com.br
#2
Posted 02/01/2006, 16:32
Falopa!
#3
Posted 02/01/2006, 17:25
http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual
#4
Posted 03/01/2006, 07:46
eu tentei em png, mais não consegui deixar transparente.
você salvo como png ou exporto como png 32 ?
abraço,
www.glaucomaschio.com.br
#6
Posted 19/09/2006, 22:26
<?php /** * @author: Felipe Nascimento Silva Pena ( Eclesiastes ) */ header('Content-type: image/png'); // Definições dimensionais define('IMG_W', 400); define('IMG_H', 400); // Criando uma imagem $img = imagecreate(IMG_W, IMG_H); // Criando uma cor $bgcolor = imagecolorallocate($img, 100, 100, 100); // Pintando o fundo imagefilledrectangle($img, 0, 0, IMG_W, IMG_H, $bgcolor); // Elipse transparente imagefilledellipse($img, 0, 0, 100, 100, imagecolorallocatealpha($img, 255, 255, 255, 127)); // Elipse com a cor do fundo imagefilledellipse($img, 50, 50, 100, 100, $bgcolor); imagepng($img); imagedestroy($img); ?>
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#7
Posted 20/09/2006, 00:10
tipo, da onde eu mando a imagem q vai ser upada?
hehe
thanks
Edição feita por: snkneo, 20/09/2006, 00:16.
#8
Posted 20/09/2006, 07:52
// DEFINE UMA CONSTANTE
http://br.php.net/ma...tion.define.php
// CRIA UMA IMAGEM
http://br.php.net/ma...imagecreate.php
// ALOCA UMA COR PARA IMAGEM CRIADA ACIMA
http://br.php.net/ma...lorallocate.php
// DESENHA UM RETÂNGULO PRENCHIDO
http://br.php.net/ma...edrectangle.php
// DESENHA UM ECLIPSE PRENCHIDO - não conhecia esta função
http://br.php.net/ma...lledellipse.php
// CRIA/ENVIA UMA IMAGEM PARA O BROWSER OU PARA O ARQUIVO
http://br.php.net/ma...on.imagepng.php
// DESTROI A IMAGEM GERADA PELA FUNÇÃO IMAGECREATE()
http://br.php.net/ma...magedestroy.php
Fonte: http://br.php.net/ma...pt_BR/index.php
T+
PALMEIRAS - Primeiro campeão do mundo em 1951
#9
Posted 20/09/2006, 09:09
porem,
pelo q entendi isso aki me cria apenas a imagem arredondada vazia com a cor especificada, nao eh isso?
ker dizer.. depois disso tenho q jogar em cima da original? ou tem como eu arredondar uma imagem direto ?
Edição feita por: snkneo, 20/09/2006, 09:34.
#10
Posted 20/09/2006, 09:49
se você fizer o contrário, a imagem que você quer que apareça dentro dessa imagem vazia, irá ser jogada acima dessa imagem gerada com a borda modificada...
^^' eu pra explicar sou muicho zero a esquerda
T+
PALMEIRAS - Primeiro campeão do mundo em 1951
#11
Posted 20/09/2006, 10:24
a bola fica ao contrario hehe...
Bom.... entendi e fiz as modificacoes necessarias...
ele cria os cantos arredondados e tal... porem,
nao to sabendo como mesclar a foto original com a imagem q acabei de criar...
function ImageRectangleWithRoundedCorners($foto) { // variaveis padrao, inicio no topo x1,y1, e raio da elipse $x1 = 0; $y1 = 0; $radius = 50; // pegar a foto enviada e usa o comando pra criar $foto = imagecreatefromjpeg($foto); // pegar largura e altura da foto $largura_origin = imagesx($foto); $altura_origin = imagesy($foto); // define que o novo tamanho- é o mesmo da foto original $x2 = $new_width = $largura_origin; $y2 = $new_height = $altura_origin; // cria imagem vazia $im = imagecreatetruecolor($largura_origin,$altura_origin); // Criando uma cor $color = imagecolorallocate($im, 0, 0, 100); // Pintando o fundo com a cor branca $bgcolor = imagecolorallocate($im, 255, 255, 255); // fundo branco imagefilledrectangle($im, 0, 0, $largura_origin, $altura_origin, $bgcolor); // Draw rectangle without corners ImageFilledRectangle($im, $x1+$radius, $y1, $x2-$radius, $y2, $color); ImageFilledRectangle($im, $x1, $y1+$radius, $x2, $y2-$radius, $color); // Draw circled corners ImageFilledEllipse($im, $x1+$radius, $y1+$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x2-$radius, $y1+$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x1+$radius, $y2-$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x2-$radius, $y2-$radius, $radius*2, $radius*2, $color); //copiar sobre a imagem em branco a amostra diminuindo conforma as especificacoes imagecopy($foto, $im , 0 , 0 , 0 ,0 , $new_width , $new_height); //imagecopyresampled($im,$foto,0,0,0,0, $new_width, $new_height, $largura_origin,$altura_origin); return (imagepng($foto)); }
#12
Posted 04/06/2008, 15:36
Segue abaixo uma demonstração usando tão somente a biblioteca Gd. CODE <?php /** * @author: Felipe Nascimento Silva Pena ( Eclesiastes ) */ header('Content-type: image/png'); // Definições dimensionais define('IMG_W', 400); define('IMG_H', 400); // Criando uma imagem $img = imagecreate(IMG_W, IMG_H); // Criando uma cor $bgcolor = imagecolorallocate($img, 100, 100, 100); // Pintando o fundo imagefilledrectangle($img, 0, 0, IMG_W, IMG_H, $bgcolor); // Elipse transparente imagefilledellipse($img, 0, 0, 100, 100, imagecolorallocatealpha($img, 255, 255, 255, 127)); // Elipse com a cor do fundo imagefilledellipse($img, 50, 50, 100, 100, $bgcolor); imagepng($img); imagedestroy($img); ?>
Tenho esse código aqui, mais naum esta dando certo, o q sera q tem de errado? Quando eu envio a imagem a tela fica em branco, não aparece nenhum erro!
<form id="form" method="post" action="" enctype="multipart/form-data"> <label> <input name="foto" type="file" id="foto" value="" /> </label> <label> <input type="submit" name="button" id="button" value="Submit" /> </label> </form> </body> </html> <? function ImageRectangleWithRoundedCorners($foto) { // variaveis padrao, inicio no topo x1,y1, e raio da elipse $x1 = 0; $y1 = 0; $radius = 50; // pegar a foto enviada e usa o comando pra criar $foto = imagecreatefromjpeg($foto); // pegar largura e altura da foto $largura_origin = imagesx($foto); $altura_origin = imagesy($foto); // define que o novo tamanho- é o mesmo da foto original $x2 = $new_width = $largura_origin; $y2 = $new_height = $altura_origin; // cria imagem vazia $im = imagecreatetruecolor($largura_origin,$altura_origin); // Criando uma cor $color = imagecolorallocate($im, 0, 0, 100); // Pintando o fundo com a cor branca $bgcolor = imagecolorallocate($im, 255, 255, 255); // fundo branco imagefilledrectangle($im, 0, 0, $largura_origin, $altura_origin, $bgcolor); // Draw rectangle without corners ImageFilledRectangle($im, $x1+$radius, $y1, $x2-$radius, $y2, $color); ImageFilledRectangle($im, $x1, $y1+$radius, $x2, $y2-$radius, $color); // Draw circled corners ImageFilledEllipse($im, $x1+$radius, $y1+$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x2-$radius, $y1+$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x1+$radius, $y2-$radius, $radius*2, $radius*2, $color); ImageFilledEllipse($im, $x2-$radius, $y2-$radius, $radius*2, $radius*2, $color); //copiar sobre a imagem em branco a amostra diminuindo conforma as especificacoes imagecopy($foto, $im , 0 , 0 , 0 ,0 , $new_width , $new_height); //imagecopyresampled($im,$foto,0,0,0,0, $new_width, $new_height, $largura_origin,$altura_origin); return (imagepng($foto)); } echo"<img src=\"$foto\" />"; ?>
Webmaster
Agência Gigante
Criciúma - SC
#13
Posted 04/06/2008, 15:43
Mas isso vai ser util pra mim eu estava atrás disso e meu tópico nao deram muita importância
valeu
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#14
Posted 04/06/2008, 15:56
Webmaster
Agência Gigante
Criciúma - SC
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)