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

(Resolvido) Problema classe tratamento de imagem


Marko Neto

Pergunta

Galera, tudo beleza?

Estou com o seguinte problema, criei um sistema de upload de imagem, ele esta funcionando 100%.

O problema agora é, ele usa a regra de 3 para definir o novo tamanho da imagem aquele famoso:

$altura = ($largura*$y) / $x;
Mas oque acontece é que a maioria dos forums não aceitam imagens com altura maior doque 600 pixels. O sistema funciona perfeito para imagens de largura e altura porporcionais, porem se eu envio uma imagem com altura maior doque a largura, ele aumenta mais a altura, vou explicar: Imagem dimensões: 283x400 A altura dela é maior mas dentro do padrão, então quando aplico a regra para redimensionamento, a imagem fica com as dimensões: 650x918 Entendeu? Ele esta aumentando o tamanho da imagem, sera que tem como fazer ele ignorar o redimensionamento quando for uma imagem menor ou igual a 800x600 mas continuar inserindo a marca d'agua ?? o código é esse que faz o redimensionamento e insere a marca d'agua é esse:
<?php function upload_jpg($tmp, $nome, $largura, $pasta){
     $img = imagecreatefromjpeg($tmp);
     $x = imagesx($img);
     $y = imagesy($img);
     $altura = ($largura*$y) / $x;
     $nova = imagecreatetruecolor($largura, $altura);
     imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
     imagedestroy($img);
     $marca = imagecreatefrompng('marca.png');
     $marcax = imagesx($marca);
     $marcay = imagesy($marca);
     $localx = $largura-170;
     $localy = $altura-80;
     imagecopyresampled($nova, $marca, $localx, $localy, 0, 0, 166, 74, $marcax, $marcay);     
     imagejpeg($nova, "$pasta/$nome");
     imagedestroy($nova);
     return($nome);
}?>
e a parte do código que envia a imagem é esse:
<?php if(isset($_POST['upload'])){
      
     $pasta = 'upload';
     $permitido = array('image/jpg', 'image/jpeg', 'image/pjpeg');
     
     $img = $_FILES['img'];
     $countImg = count($img['name']);
     
     require('upload_func.php');
     
     for($i=0;$i<$countImg;$i++){
     $tmp = $img['tmp_name'][$i];
     $name = $img['name'][$i];
     $type = $img['type'][$i];
     
     if(!empty($name) && in_array($type, $permitido)) {
       $nome = 'site-'.md5(uniqid(rand(), true)).$i.'.jpg';
       upload_jpg($tmp, $nome, 650, $pasta);

Caso não tenha ficado claro é só falar que eu explico melhor.

Bom galera estou pedindo humildemente a juda de vocês, só estou pedindo ajuda porque já tentei d eoutras formas ignorar o redimensionamento de imagens pequenas, porem não consegui.

Toda ajuda é bem vinda.

Abraço.

Editado por Marko Neto
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
if($x >= '800' AND $y >='600'){ //Se a largura for maior ou igual a 800 e a altura for maior ou igual a 600, faz a regra de três
$altura = ($largura*$y) / $x;
}else{ // Se não for simplesmente as dimensões novas serão iguais as dimensões originais da imagem.
$altura = $y;
$largura = $x
}

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
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...