Estou tentando fazer igual no site:
http://www.netcarshow.com
O visitante clica na foto e abre a padrão 800x600, depois escolhe a resolução e escolhe também a área do corte, dai a imagem é tratada, mas como sou iniciante em php não sei como fazer isso, alguém aqui pode me ajudar?
Como Fazer Um Sistema De Corte De Wallpapers?
Started By Diego Velox, 04/07/2010, 10:38
2 replies to this topic
#1
Posted 04/07/2010, 10:38
#2
Posted 04/07/2010, 20:11
Estou tentando fazer igual no site:
http://www.netcarshow.com
O visitante clica na foto e abre a padrão 800x600, depois escolhe a resolução e escolhe também a área do corte, dai a imagem é tratada, mas como sou iniciante em php não sei como fazer isso, alguém aqui pode me ajudar?
Modo mais dificil:
1. Você vai precisar da imagem na maior resolução possível.
2. Definirá quais serão as resoluções.
3. Depois poderá usar a galeria GD do PHP para redimencionar as imagens.
4. Depois vai ter de adicionar o logo.
Essas são algumas funções de PHP que você irá utilizar: getimagesize, imagecreatetruecolor, imagecolorallocate, imagefill, imagecopy, imagejpeg, imagedestroy
Modo mais fácil:
Tem uma classe chamada wideimage que faz tudo isto bem fácil. Olhe o site deles: http://wideimage.sourceforge.net/
http://www.liveworks.com.br : Soluções para internet
http://www.phpmysqljquery.com.br : PHP, MySQL e jQuery
http://www.passoapasso.info : Minhas dicas
http://www.phpmysqljquery.com.br : PHP, MySQL e jQuery
http://www.passoapasso.info : Minhas dicas
#3
Posted 15/09/2010, 12:28
Já encontrei a solução, segue o código:
O código faz exatamente o que queria, ele pega a imagem, ajusta para o centro, corta e redimensiona ela para o tamanho escolhido sem perder a resolução da imagem.
<?php $imagem = $_GET['imagem']; $resolucao = $_GET['resolucao']; $filename = "seusite/sistemas/postarwallpapers/wallpapers/$imagem"; if($resolucao=='1024x768'){ echo '<img src="'.$filename.'">'; } else{ ini_set("memory_limit", "16M"); header('Content-type: image/jpeg'); $source = imagecreatefromjpeg($filename); switch($resolucao){ case '1280x800': $novaLargura = 1280; $novaAltura = 800; break; case '1440x900': $novaLargura = 1440; $novaAltura = 900; break; case '1280x1024': $novaLargura = 1280; $novaAltura = 1024; break; case '1366x768': $novaLargura = 1366; $novaAltura = 768; break; } $larguraOriginal = imagesx($source); $alguraOriginal = imagesy($source); $larguraCalc = $larguraOriginal / $novaLargura; $alturaCalc = $alguraOriginal / $novaAltura; $min = min($larguraCalc, $alturaCalc); $xt = $min * $novaLargura; $x1 = ($larguraOriginal - $xt) / 2; $x2 = $larguraOriginal - $x1; $yt = $min * $novaAltura; $y1 = ($alguraOriginal - $yt) / 2; $y2 = $alguraOriginal - $y1; $x1 = (int) $x1; $x2 = (int) $x2; $y1 = (int) $y1; $y2 = (int) $y2; $thumb = imagecreatetruecolor($novaLargura, $novaAltura); // modifica.. imagecopyresampled($thumb, $source, 0, 0, $x1, $y1, $novaLargura, $novaAltura, $x2-$x1, $y2-$y1); // finaliza, com qualidade 90%. <img src='http://forum.wmonline.com.br/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' /> imagejpeg($thumb, "", 100); } ?>
O código faz exatamente o que queria, ele pega a imagem, ajusta para o centro, corta e redimensiona ela para o tamanho escolhido sem perder a resolução da imagem.
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)