• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

c3ejo0

Resize de Imagem

4 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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/

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora