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

Gravar Imagem


Luckxander

Pergunta

Alguém pode me dizer se existe alguma função para salvar uma imagem .png gerada pela biblioteca GD2 num diretório ?

Eu queria salvar a imagem num diretório e não num arquivo como no caso da função fwrite.

Seria possível fazer isso ?

Veja abaixo o código que usei para gerar e exibir a imagem, se alguém puder me ajudar, indique o que devo acrescentar no código, para salvar por exemplo no diretório raiz do meu hd (C:/).

Obs: o script abaixo está funcionando perfeitamente ...

<?php 

$form_fields = array('background', 'body', 'hair', 'shirt', 'arms', 'feet', 'legs', 'weapon'); 

ob_start(); 
validate_inputs($form_fields); 
create_avatar($form_fields); 
output_image(ob_get_clean());

function validate_inputs($inputs) 
{ 
    foreach($inputs as $item) 
    { 
        if((preg_match('@(\.|/)@', $_GET['avatar'][$item]))  
        or (!is_file('avatars/'.$_GET['avatar'][$item].'.png'))) 
        { 
            die(); 
        } 
    } 
} 

function create_avatar($inputs) 
{ 
    while($inputs) 
    { 
        $layer = @imagecreatefrompng('avatars/'. 
                 ($file = $_GET['avatar'][array_shift($inputs)]). 
                 '.png') 
                 or die('I could not open the avatars/'.$file); 
        $layerWidth = imageSX($layer); 
        $layerHeight = imageSY($layer); 
        if(!isset($slate)) 
        { 
            $slate = imagecreatetruecolor($layerWidth, $layerHeight); 
        } 
        imagecopy($slate, $layer, 0, 0, 0, 0, $layerWidth, $layerHeight); 
        imagedestroy($layer); 
    } 
    imagetruecolortopalette ($slate, false, 256); 
    imagepng($slate); 
    imagedestroy($slate); 
} 

function output_image($image) 
{ 
    $hash = md5($image); 
    if(isset($_SERVER['HTTP_IF_NONE_MATCH'])){ 
        if($hash == trim($_SERVER['HTTP_IF_NONE_MATCH'], '"')){ 
            header("HTTP/1.x 304 Not Modified"); 
            header('Etag: "'.$hash.'"'); 
            die(); 
        } 
    } 
    header('Etag: "'.$hash.'"'); 
    header('Content-Type: image/png');
    
    echo $image;      
} 

?>

Editado por Beraldo
Adição da tag code
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Beraldo,

de acordo com as instruções, acrescentei essas duas linhas no final e deu uma mensagem de erro.

$imagem = imagecreatefrompng($imagem);

imagepng($imagem);

O que fiz errado ?

Nesse caso só exibiria no browser, para gravar eu acrescentaria o quê ?

Link para o comentário
Compartilhar em outros sites

  • 0

Define o parâmetro $filename.

Do Manual:

A função imagepng() envia um stream GD de imagem (image) no formato PNG para a saída padrão (normalmente o browser) ou, se for dado um nome de arquivo no parâmetro filename ele envia a imagem para um arquivo.

Ex:

imagepng($im, "imagens/x.png");

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