Jump to content


Photo

Como Fazer Um Sistema De Corte De Wallpapers?


  • Faça o login para participar
2 replies to this topic

#1 Diego Velox

Diego Velox

    Turista

  • Usuários
  • 37 posts
  • Sexo:Masculino
  • Localidade:Esmeraldas - Minas Gerais, Brasil

Posted 04/07/2010, 10:38

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?

#2 KILLME

KILLME

    Normal

  • Usuários
  • 117 posts
  • Sexo:Não informado
  • Localidade:Caraguatatuba-SP

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

#3 Diego Velox

Diego Velox

    Turista

  • Usuários
  • 37 posts
  • Sexo:Masculino
  • Localidade:Esmeraldas - Minas Gerais, Brasil

Posted 15/09/2010, 12:28

Já encontrei a solução, segue o código:

<?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)

IPB Skin By Virteq