Jump to content
Fórum Script Brasil
  • 0

Como Diminuir Uma Imagem Proporcionalmente


Rubiz Gardini
 Share

Question

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 to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

  • 0

Boa parte do manual já está em português... só os exemplos postados pelos usários que sempre estão em inglês, pelo motivo óbvio que a galera posta sempre na língua universal (que infelizmente não é o português).

Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

Será que eu posso pedir ao meu servidor que instale a biblioteca GD?

Claro... mesmo porque basta eles descomentarem a linha da ;extension=php_gd2.dll que a GD já funciona, acabei de testar isso aqui em localhost.

Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...