Ir para conteúdo
Fórum Script Brasil
  • 0

Thumb


rogerio_st

Pergunta

Galera,

Estou com o seguinte código

...
if($_FILES["imagem"]["name"]) {
    $arquivo = "../images/promocao/promo_gr_$cod_pro.jpg"; // 190 x 185
    if(file_exists($arquivo)) unlink($arquivo);
    copy($_FILES["imagem"]["tmp_name"], $arquivo);

    $arquivo2 = "../images/promocao/promo_pq_$cod_pro.jpg"; // 59 x 57
    if(file_exists($arquivo2)) unlink($arquivo2);
    copy($_FILES["imagem"]["tmp_name"], $arquivo2);
}
...

Isso faz parte de um cadastro de notícias onde eu tenho que subir uma imagem onde o nome já leva o código nele para que eu possa buscar essa imagem depois, até aí tudo certo, agora estou tentando fazer com que na segunda parte ($arquivo2) ele faça um redimensionamento, andei dando uma olhada por aqui e por outros fóruns mas não consegui fazer rodar, conferi a GD e está tudo ok.

Alguém tem alguma idéia de como eu faço para subir essa segunda parte já redimensionada?

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Aqui já tem um exemplo pronto pro seu caso... basta colocar ele depois do seu código... mais ou menos assim:

if($_FILES["imagem"]["name"]) {
    $arquivo = "../images/promocao/promo_gr_$cod_pro.jpg"; // 190 x 185
    if(file_exists($arquivo)) unlink($arquivo);
    copy($_FILES["imagem"]["tmp_name"], $arquivo);

    $arquivo2 = "../images/promocao/promo_pq_$cod_pro.jpg"; // 59 x 57
    if(file_exists($arquivo2)) unlink($arquivo2);
    copy($_FILES["imagem"]["tmp_name"], $nome_qq);//Aqui você define outro nome qualquer...

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($nome_qq);
$new_width = 59;
$new_height = 57;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($nome_qq);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, $arquivo2, 100);

unlink ($nome_qq);
}

Não testei, mas já utilizei esse exemplo do manual e tava ok.

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra,

Testei aqui mas não funcionou, na verdade ele deletou a imagem antiga, ou seja, só subiu a imagem maior, antes ele subia 2 imagens do mesmo tamanho, com esse código ele só fez o upload da maior ($arquivo)

Não sei ao certo se usei de forma correta o que eu fiz foi:

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($arquivo2);
$new_width = 59;
$new_height = 57;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($arquivo2);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, $arquivo2, 100);

unlink ($arquivo2);    

Coloquei o endereço da imagem que eu quero que ele redimensione ($arquivo2) no lugar de $nome_qq, mas estou chutando, naõ saco muito disso...

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

Veja o que você está fazendo... você está redimensionando a imagem e salvando-a com o valor do $arquivo2:

imagejpeg($image_p, $arquivo2, 100);

Ai logo abaixo, você está apagando a imagem que acabou de salvar, ou seja, a $arquivo2:

unlink ($arquivo2);

Por isso no exemplo troquei o nome $arquivo2 para um outro qualquer, para não haver confusão como você fez agora... então o que eu fiz... eu peguei a imagem do temporário, dei um nome qualquer, redimensionei ela e AI sim salvei com o nome de $arquivo2 e ai apaguei a imagem que tinha salvo com o nome qualquer...

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra,

Entendi em parte o que você disse, coloquei exatamente o seu código, mas ele gerou uma imagem toda preta, no tamanho correto, mas não uma miniatura, além disso ele não prossegue o código para e imprime

http://localhost/jb/adm/promocao_sql.php
Essa é a página que tem toda a rotina de inclusão, exclusão e alteração no meu BD, e ao final dela coloquei
header("Location:promocao.php");

Mas ela simplesmente para.

Alguma idéia de onde eu estou vacilando???

De qualquer forma agradeço a atenção!

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

Olha eu acabei de testar no meu servidor e tá 100%...eu adaptei o código para não precisar fazer rotina de upload...

<?

$arquivo2 = "teste.jpg";
$saida = "eu.jpg";
// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($arquivo2);
$new_width = 59;
$new_height = 57;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($arquivo2);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, $saida, 100);

?>

Quanto ao fato de estar saindo pretas as imagens... na linha referente ao imagejpeg, deixe apenas o argumento $image, e veja se o thumb é gerado de forma perfeita...

Quanto ao fato dele estar parando o código, retire a parte referente ao header... isso resolve.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...