Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos, desejo redimensionar imagem, caso a largura seja maior do que o limite máximo fixado. Isso funciona normalmente. O problema é que, se a largura original é menor do que o limite fixado, a imagem acaba ampliada. Neste caso, quero que a imagem matenha suas dimensões originais. Tentei criar uma condição, mas não funcionou. Alguém pode dar uma luz?
<?php
function upload($tmp, $alfotos, $largura, $pasta)
{
$img = imagecreatefromjpeg($tmp);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura * $y) / $x;
if($largura < $x){
break;
}else{
$nova = imagecreatetruecolor($largura, $altura);
imagecopyresampled($nova, $img, 0,0,0,0, $largura, $altura, $x, $y);
imagejpeg($nova, "$pasta/$alfotos");
imagedestroy($nova);
imagedestroy($img);
return($alfotos);
}
}
?>Coloca a condição para mexer nela somente se for menor.
E esse break aí tá errado, não ?
...
>
você consegue ler essa função?
como se fosse um texto mesmo.
Amigos, desejo redimensionar imagem, caso a largura seja maior do que o limite máximo fixado. Isso funciona normalmente. O problema é que, se a largura original é menor do que o limite fixado, a imagem acaba ampliada.
>
Coloca a condição para mexer nela somente se for menor.
E esse break aí tá errado, não ?
...
Tentei criar uma condição, mas não funcionou.
Amigos, desejo redimensionar imagem, caso a largura seja maior do que o limite máximo fixado. Isso funciona normalmente. O problema é que, se a largura original é menor do que o limite fixado, a imagem acaba ampliada.
Eu não perguntei aquilo atoa, acontece que é um erro de lógica.
eu quero que você entenda, não vou te dar nada pronto.
então você faria a leitura do código e e eu iria te falando, aqui é assim e/ou você precisa disso e não disso.
^^
>
Eu não perguntei aquilo atoa, acontece que é um erro de lógica.
eu quero que você entenda, não vou te dar nada pronto.
Tá certo, não estamos aqui pra fazer nada de graça, e sim ajudar.
ultimamente eu vejo muitas pessoas sem códigos ou com códigos prontos e querendo que agente "resolva".
Voltando ao tópico
if($largura < $x){
$altura = ($largura * $y) / $x;
}else{
$altura = $y;
$largura = $x;
}
Esse script seria muito fácil se você estudasse!
>
William, vc resolveu o problema de um autodidata, curioso apenas, como está no meu nome. Não vivo de programação PHP, o que até dá para notar, sem maior esforço.
Sou jornalista, colunista de jornal de circulação estadual, escritor com cinco livros publicados e mestre em teoria da comunicação. Escrevo tudo isso, pedindo desculpas pelo aparente "rompante", porque fui humilhado, tratado como explorador do conhecimento alheio e pessoa que não estuda. Programação, para mim, é passa-tempo, "brincando" com meus sitesinhos irrelevantes.
A propósito do script, ficou ótimo, mas só redimensionava foto JPG. Aproveitando outros códigos, remendei um terceiro, que redimensiona também GIF, o que atende perfeitamente às minhas necessidades.
Aí vai o script, que finalizei (não sei se de modo perfeito), mas funciona. Compartilho, para ajudar outros "curiosos" e também, porque, em verdade, não me pertence:
<?php
class Redimensiona{
public function Redimensionar($imagem, $largura, $pasta){
$name = 'cn-'.md5(uniqid(rand(),true));
if ($imagem['type']=="image/jpeg"){
$img = imagecreatefromjpeg($imagem['tmp_name']);
}else if ($imagem['type']=="image/gif"){
$img = imagecreatefromgif($imagem['tmp_name']);
}else if ($imagem['type']=="image/png"){
$img = imagecreatefrompng($imagem['tmp_name']);
}
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura * $y)/$x;
if($largura < $x){
$altura = ($largura * $y) / $x;
}else{
$altura = $y;
$largura = $x;
}
$nova = imagecreatetruecolor($largura, $altura);
imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
if ($imagem['type']=="image/jpeg"){
$local="$pasta/$name".".jpg";
imagejpeg($nova, $local);
}else if ($imagem['type']=="image/gif"){
$local="$pasta/$name".".gif";
imagejpeg($nova, $local);
}else if ($imagem['type']=="image/png"){
$local="$pasta/$name".".png";
imagejpeg($nova, $local);
}
imagedestroy($img);
imagedestroy($nova);
return $local;
}
}
?>Que bom,
mas aquele aviso não foi pra você, eu apenas estava te usando como modelo global.
>
Que bom,
mas aquele aviso não foi pra você, eu apenas estava te usando como modelo global.
Eu sei, irmão. Também não fiz desabafo por sua causa. Ao contrário, sou grato por sua ajuda. Sucesso!
você consegue ler essa função?
como se fosse um texto mesmo.