Ir ao conteúdo
  • Cadastre-se

lgwebforum

Membro Pleno
  • Posts

    51
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de lgwebforum em Erro ao tentar compactar imagens com PHP. foi marcado como solução   
    Muito obrigado. 
    Consegui fazer funcionar. 
    Aparentemente alguns arquivos jpeg apresentam erro e não conseguem ser lidos como jpeg. 
    Desta forma, a variável $imagem não era preenchida e mais adiante era apresentado o erro pela falta desta informação.
     
    Reescrevi o código que agora faz o seguinte:
    * Reduz proporcionalmente a largura da imagem para 800px caso seja maior.
    Se for menor mantém as medidas. 
    * Verifica automaticamente se é um dos 4 tipos "jpeg, png, gif, bmp" e usa a função adequada.
    No caso do gif ele irá perder o movimento.
    * Define a nova resolução para 50% da original.
    * Aplica as configurações acima em todas os arquivos que iniciem com "ticker"
    em meu caso, estes arquivos não tem extensão portando não precisei adicionar.
    O arquivo compactado irá substituir o original.
     
    <?php ini_set('memory_limit', '-1'); /*resolvendo o erro de falta de memoria*/ function compressImage($source_path, $destination_path, $quality) { /* Obtendo informações da imagem */ $size = getimagesize($source_path); /* Verifica a largura da imagem, caso for maior que 800 será reduzida para 800 */ if ($size[0] > 800){ $new_width = "800"; /* Caso seja menor a largura original será mantida */ } else ($new_width = $size[0]); /* Obtendo a altura proporcional a nova largura */ $new_height = ( int )(( $new_width/$size[0] )*$size[1] ); /* Criano a imagem com cores reais e dimensões escolhidas */ $img_true_color = ImageCreateTrueColor( $new_width, $new_height ); /* Verifica o tipo de imagem para usar a função adequada */ if ($size['mime'] == 'image/jpeg') { $image = imagecreatefromjpeg($source_path); } elseif ($size['mime'] == 'image/png') { $image = imagecreatefrompng($source_path); } elseif ($size['mime'] == 'image/gif') { $image = imagecreatefromgif($source_path); } elseif ($size['mime'] == 'image/bmp') { $image = imagecreatefrombmp($source_path); } /* Criando a imagem redimensionada */ ImageCopyResampled( $img_true_color, $image, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1] ); /* Salva a imagem em jpg definindo local+nome e qualidade */ imagejpeg($img_true_color, $destination_path, $quality); return $destination_path; /* Limpa da memoria a imagem criada temporáriamente */ ImageDestroy( $img_true_color ); } /*-------------------*/ /*------- Definindo a pasta das imagens */ $dir_img = "pasta/web/midia_test/"; /* Handler do diretório */ $dh = opendir($dir_img); /* loop que busca todos os arquivos que iniciam com "ticker" */ while (false !== ($filename = readdir($dh))) { /* Verificando se o arquivo inicia com "ticker" */ if (substr($filename,0,6) == "ticker") { echo "$filename <br>"; /* Chama a função para cada arquivo que inicia com "ticker" */ $img = compressImage($dir_img.$filename, $dir_img.$filename, 50); } } ?>  
  2. O post de lgwebforum em HTML E PHP Inverter data antes de gravar no banco de dados foi marcado como solução   
    @dif
     
    Você tem razão, eu não entendi nada, e agora ficou mais complicado ainda
     
    De qualquer forma, obrigado pelo tempo despendido, vou continuar tentando
    até acertar.

    Boa noite.
     
     
    ATUALIZADO:
     
    ENCONTREI A SOLUÇÃO: Neste blog:  http://www.l9web.com.br/blog/?p=68
     
    Segue código com a solução:
     
    CONVERTE A DATA DO FORMATO BR PARA EUA ANTES DE ENVIAR AO BD

    A data no formato BR que está armazenada em " $_POST["dpf_dt_nasc"] "
    é convertida para o formato dos EUA pelo código "implode/explode" e em seguida
    armazenada na variável " $dpf_dt_nasc_eua "
        $dpf_dt_nasc_eua = implode("-",array_reverse(explode("/", $_POST["dpf_dt_nasc"])));   $updateSQL = sprintf("UPDATE dados_pf SET dpf_nome=%s, dpf_est_civil=%s, dpf_rg=%s, dpf_cpf=%s, dpf_dt_nasc=%s WHERE dpf_anun_id=%s",                       GetSQLValueString($_POST['dpf_nome'], "text"),                       GetSQLValueString($_POST['dpf_est_civil'], "text"),                       GetSQLValueString($_POST['dpf_rg'], "text"),                       GetSQLValueString($_POST['dpf_cpf'], "int"),  /*A data armazenada em "$dpf_dt_nasc_eua" será enviada ao BD */                  GetSQLValueString($dpf_dt_nasc_eua, "date"),                   GetSQLValueString($_POST['anun_id'], "int"));    mysql_select_db($database_conSisDtv, $conSisDtv);   $Result1 = mysql_query($updateSQL, $conSisDtv) or die(mysql_error()); Ficou bem mais simples e funcional. 
     
    Obrigado a todos que contribuíram. 
     
     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!