Realizado

Base64 para jpg

Publicado em 18 de Novembro de 2017 dias na TI e Programação

Sobre este projeto

Aberto

Eu tenho servidor em PHP puro, nao e um site, tem uma pagna que eu comunico com ela trazer de json, envio uma string base64 para ela e a extenção da imagem, minha pagna recebe como $_POST e remonta a imagem para mim fisicamente no servidor. Eu vi na internet alguns projetos muitos bom, mas nao quanto pego a imagem ja montada pela base64, e redimenciono ela, que e o que eu preciso mesmo e redimencionar para um tamanho menor, da erro. Meus testes indicaram que a imagem remontada da base64 nao e compativel com os comandos de redimencionar que achei na internet.

Resumindo, eu preciso receber a base64, montar a imagem fisica, e depois redimencionar ela por 150 - 150. Para que fique pequena pra depois eu consumir ela.
A parte de receber e remontar a imagem ja esta pronta, fiz uma gambiara que deu certo mas nao quero que fique assim. Ficou assim, eu recebo base64, monto a imagem em um diretorio, uso WideImage para redimencionar ela, excluo a imagem antiga, pego o outro codigo que uso pra redimencionar que e muito bom e chamo de novo e redimenciono novamente, ai da super certo, mas esta com gambiara..

//Tamanho da Imagem
$altura_imagem  = "150";
$largura_imagem = "150";

//Pasta onde Salvar
$SalvarPastaRaiz = 'imagens/';
$SalvarPasta150  = 'imagens/imagem150/';

  //Pega os parametros enviados como POST
  $encoded_string = $_POST['imagem_postagem'];
  $image_name = md5(time()) . $_POST['extesao'];
 
  //Inicia o Processo de Converter em Base64 para Imagem
  $decoded_string = base64_decode($encoded_string);
  $path = $image_name;
  $file = fopen($path, 'wb');           
  $is_written = fwrite($file, $decoded_string);
  fclose($file);
 
  $image_tempo = WideImage::load($path);
  $redimencionar = $image_tempo->resize(500,500);
  //Deletar imagem na pasta Raiz
  unlink($path);     
  $redimencionar->saveToFile($image_name);
 
  ////////////////////////////////////////////////////////////////////////////////////////////////////
  //Imagem 1 /////////////////////////////////////////////////////////////////////////////////////////
  ////////////////////////////////////////////////////////////////////////////////////////////////////

  header("Content-type: image/jpg");       
 
  //Iniciar a processo de Redimencionar a Imagem
  $imagem_temporaria = imagecreatefromjpeg($image_name);
 
  $largura_original = imagesx($imagem_temporaria);
  $altura_original = imagesy($imagem_temporaria);
 
  $nova_largura = $largura_imagem ? $largura_imagem : floor (($largura_original / $altura_original) * $altura_imagem);
  $nova_altura = $altura_imagem ? $altura_imagem : floor (($altura_original / $largura_original) * $largura_imagem);
  $imagem_redimensionada = imagecreatetruecolor($nova_largura, $nova_altura);
  imagecopyresampled($imagem_redimensionada, $imagem_temporaria, 0, 0, 0, 0, $nova_largura, $nova_altura, $largura_original, $altura_original);
 
  //Salvar a Imagem Redimencionada na Pasta
  imagejpeg($imagem_redimensionada, $SalvarPasta150.$Image_name);
 
  //Deletar imagem na pasta Raiz
  unlink($image_name); 

Esse e como esta hoje. Eu nao deixei o metodo do WideImage  porque ele nao deixa a imagem do tamanho que preciso, pois depois de redimanecionar fica muito grande ainda, preciso do tamanho dela no minimo uns 12kb mais que isso fica pesado o transporte da imagem.

Categoria TI e Programação
Subcategoria Outros
Tamanho do projeto Pequeño
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Experiência nesse tipo de projeto Não (Eu nunca gerenciei esse tipo de projeto)

Prazo de Entrega: 21 de Novembro de 2017

Habilidades necessárias

PHP