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

Como Diminuir Uma Imagem Proporcionalmente


Rubiz Gardini

Pergunta

Olá gente; procurei muito pela internet uma resposta fácil pra minha questão, em vão.

Vi um script mais complicado que o outro!!

Eu preciso apenas, tão somente, diminuir proporcionalmente o tamanho de imagens vindas de um banco de dados...

Gente, só que tem que haver um modo inteligente de fazer isso sem escrever mil linhas de código, seja por javascript, seja por css, seja por php...

Alguém tem alguma dica?

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Existe um exemplo simples e pequeno (se tirar os comentários fica pequeno) no próprio manual do php:

<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;

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

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Output
imagejpeg($thumb);
?> 

Link para o comentário
Compartilhar em outros sites

  • 0

Não deu certo... :o que pena, um script tão simples!!!!

Olha os erros que deu:

Warning: Cannot modify header information - headers already sent by (output started at E:\Virtuais\mrman\categoria_alimentos.php:7)
Fatal error: Call to undefined function imagecreatetruecolor()

=================================== editado

Tentei simplificar o script, pois acredito que para usar essas funções precisa de uma library que não tem no meu provedor.

Tentei fazer assim:

//////////////////////////////////// script thumb
                $percent = 0.5;
                list($width, $height) = getimagesize($imagem);
                $newwidth = $width * $percent;
                $newheight = $height * $percent;            
                ////////////////////////////////////////////////////////////////////////////////////////
                
                echo "<img src=\"$imagem\" width=\"$newwidth\" height=\"$newheight\" />";
Ele anuncia esse erro:
Warning: getimagesize(upload/alimentos/596D0048.jpg) [function.getimagesize]: failed to open stream: No such file or directory in E:\Virtuais\mrman\categoria_alimentos.php
Mas o diretório está certíssimo. Não há erros de caminho. Acho que essa função getimagesize não é aceita pelo meu servidor, pela falta de algum biblioteca, existe outra forma de capturar o tamanho da imagem? Observem o código que estou tentando usar:
//////////////////////////////////// script thumb
                $percent = 0.5;
                list($width, $height) = getimagesize($imagem);
                $newwidth = $width * $percent;
                $newheight = $height * $percent;            
                ////////////////////////////////////////////////////////////////////////////////////////
                
                echo "<img src=\"$imagem\" width=\"$newwidth\" height=\"$newheight\" />";

Não sei se ele dará certo, dá o aviso pentelho... <_<

Link para o comentário
Compartilhar em outros sites

  • 0

Essa foi a 1ª coisa que tentei fazer; olha como ficam as imagens

tentei assim também:

$percent = 0.5;
                //recupera as medidas da imagem e cria a proporção.
                $width = imagesx($imagem);
                $height = imagesy($imagem);
                $newwidth = $width * $percent;
                $newheight = $height * $percent;    

Não rolou também, qualquer função de obter tamanho da imagem é rejeitada pelo meu servidor... que devo fazer?

Link para o comentário
Compartilhar em outros sites

  • 0

Uhuuuuu!! deu certo sem precisar que o provedor habilitasse a biblioteca!!!

Precisei colocar a URL da imagem para que fosse feita a verificação, colocando o caminho relativo do servidor não rolou, mas fiz teste pra saber se o caminho estava correto e estava!!!

getimagesize não permite um caminho relativo dentro de variável?

Que estranho!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Uhuuuuu!! deu certo sem precisar que o provedor habilitasse a biblioteca!!!

Precisei colocar a URL da imagem para que fosse feita a verificação, colocando o caminho relativo do servidor não rolou, mas fiz teste pra saber se o caminho estava correto e estava!!!

getimagesize não permite um caminho relativo dentro de variável?

Que estranho!!!

Funciona sim... eu nunca uso caminho completo... e a GD tem que estar habilitada, logo ela já deve estar habilitada no seu servidor, testei aqui em localhost e o script só funcionou quando eu habilitei a GD... mas o caminho que eu uso é sempre relativo...

Link para o comentário
Compartilhar em outros sites

  • 0

Então, que estrenho!!!

Segue o código completo:

<?php 
                include 'admin/conecta_mysql.inc';
                
                $cat = $_GET["categoria"];
                $resultado = mysql_query("SELECT * FROM alimentos WHERE categoria='$cat' ORDER BY id DESC");

                // INÍCIO DO LAÇO DE REPETIÇÃO
                    for ($i=0; $i<=3; $i++)
                    {
                $imagem = mysql_result($resultado,$i,"imagem");
                $id = mysql_result($resultado,$i,"id");
                $url = "http://mrman.zeronet.com.br";
                
                //////////////////////////////////// script thumb
                $percent = 0.2;
                //recupera as medidas da imagem e cria a proporção.
                list($width, $height) = getimagesize("$url/$imagem");
                $newwidth = $width * $percent;
                $newheight = $height * $percent;            
                ////////////////////////////////////////////////////////////////////////////////////////
                
                echo "<a href=\"java script:window.open('popup.php?id=$id&tab=alimentos','1','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=500,height=400,top=0,left=0')\"><img src=\"$imagem\" width=\"$newwidth\" height=\"$newheight\" border=\"0\" /></a>";
                } // FIM DO LAÇO DE REPETIÇÃO
                
                mysql_close($con);                    
            ?>

Pra mim, se coloco o caminho relativo da imagem o negócio zoa inteiro!!

Bjos!! e valeu pelo help!!!

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...