c3ejo0 Posted December 3, 2009 at 10:31 PM Report Share #298650 Posted December 3, 2009 at 10:31 PM Boas! Ando já há algum tempo a tentar fazer isto mas sem sucesso. O que se passa é o seguinte: Quero apresentar uma imagem (que foi previamente inserida pelo utilizador) que independentemente das suas dimensões se ajuste ao tamanho da div onde deve ser apresentada, mantendo sempre a sua proporção de largura e altura. Por exemplo se o valor da altura for maior que o da largura, a sua redução deve ser feita tendo em consideração a altura e vice-versa. o único (e simples) código que tenho para chamar a imagem é o seguinte: <img src="_photos/<?php echo $linha['imagem_produto'] ?>" /> Se colocar nesta tag html os valores da div onde é inserida ela perde as suas proporções. Espero que tenham percebido o meu problema, senão digam que volto para explicar. Gostaria mesmo que me ajudassem 🙂 Cumprimentos Link to comment Share on other sites More sharing options...
mAiN_iNfEcTiOn Posted December 4, 2009 at 12:03 AM Report Share #298657 Posted December 4, 2009 at 12:03 AM Experimenta definir os styles da imagem a adaptarem-se à div: <img style="width:100%;height:100%;" src="_photos/<?php echo $linha['imagem_produto'] ?>" /> Ter em atenção que isto é uma dúvida de HTML e não PHP 🙂 Link to comment Share on other sites More sharing options...
c3ejo0 Posted December 4, 2009 at 10:42 AM Author Report Share #298673 Posted December 4, 2009 at 10:42 AM sim .. também já experimentei isso. Mas como eu tinha referido é suposto manter as proporções, e esse opção não funciona. Por exemplo se a div onde a imagem vai ser apresentada for quadrada (150px ) e a imagem original tiver por exemplo 340px de largura por 460px de altura, vai-se apresentar com as dimensões da div, quadrangular e com os tais 150px, perdendo assim as proporções originais. Na mesma obrigado pela resposta! Link to comment Share on other sites More sharing options...
mAiN_iNfEcTiOn Posted December 4, 2009 at 03:01 PM Report Share #298697 Posted December 4, 2009 at 03:01 PM Hum... nesse caso terás que fazer um script que para te gerar uma versão da imagem proporcional à div... Como é lógico, terás que lhe passar os tamanhos por GET, algo do género: <img src="script.php?image=<?php echo $linha['imagem_produto'];?>&width=100&height=200" /> Para tirares ideias de como fazer um script que dá origem a uma imagem, vê este exemplo: <?php header ("Content-type: image/jpeg"); /* JPEG / PNG Image Resizer Parameters (passed via URL): img = path / url of jpeg or png image file percent = if this is defined, image is resized by it's value in percent (i.e. 50 to divide by 50 percent) w = image width h = image height constrain = if this is parameter is passed and w and h are set to a size value then the size of the resulting image is constrained by whichever dimension is smaller Requires the PHP GD Extension Outputs the resulting image in JPEG Format By: Michael John G. Lopez - www.sydel.net Filename : imgsize.php */ $img = $_GET['img']; $percent = $_GET['percent']; $constrain = $_GET['constrain']; $w = $_GET['w']; $h = $_GET['h']; // get image size of img $x = @getimagesize($img); // image width $sw = $x[0]; // image height $sh = $x[1]; if ($percent > 0) { // calculate resized height and width if percent is defined $percent = $percent * 0.01; $w = $sw * $percent; $h = $sh * $percent; } else { if (isset ($w) AND !isset ($h)) { // autocompute height if only width is set $h = (100 / ($sw / $w)) * .01; $h = @round ($sh * $h); } elseif (isset ($h) AND !isset ($w)) { // autocompute width if only height is set $w = (100 / ($sh / $h)) * .01; $w = @round ($sw * $w); } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) { // get the smaller resulting image dimension if both height // and width are set and $constrain is also set $hx = (100 / ($sw / $w)) * .01; $hx = @round ($sh * $hx); $wx = (100 / ($sh / $h)) * .01; $wx = @round ($sw * $wx); if ($hx < $h) { $h = (100 / ($sw / $w)) * .01; $h = @round ($sh * $h); } else { $w = (100 / ($sh / $h)) * .01; $w = @round ($sw * $w); } } } $im = @ImageCreateFromJPEG ($img) or // Read JPEG Image $im = @ImageCreateFromPNG ($img) or // or PNG Image $im = @ImageCreateFromGIF ($img) or // or GIF Image $im = false; // If image is not JPEG, PNG, or GIF if (!$im) { // We get errors from PHP's ImageCreate functions... // So let's echo back the contents of the actual image. readfile ($img); } else { // Create the resized image destination $thumb = @ImageCreateTrueColor ($w, $h); // Copy from image source, resize it, and paste to image destination @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh); // Output resized image @ImageJPEG ($thumb); } ?> Este código está disponível para download no site do autor: http://tech.mikelopez.info/2006/03/02/php-image-resize-script/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now