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

Problema Com Imagecolorallocate


Jair Humberto

Pergunta

Olá pessoal,

sou novo no forum.

Estou tentando criar um programa para ler uma imagem. Por exemplo: eu tenho uma foto de um portão que tem ondas no meio. acima das ondas eu tenho grades e abaixo das ondas eu tenho chapa ondulada.

preciso que o programa calcule quantos % de grade há e quantos % de chapa há.

tenho uma vaga idéia de o que fazer, mas o primeiro passo está me frustrando.

quero copiar todos os pixels de uma determinada cor da imagem 1 para outra imagem que criei. Mas antes quero copiar TODOS os pixels atraves de cores para ver se está tudo certo.

eis meu código:

<?php
    $img_original = imagecreatefromjpeg("fotoa.jpg");
    $iowidth = imagesx($img_original);
    $ioheight = imagesy($img_original);
    //cria a imagem original. busca pelo seu tamanho em width e height.

    $img_copia = imagecreate($iowidth, $ioheight);
    //cria uma nova imagem com o mesmo tamanho da imagem anterior.
    
    $cinza = imagecolorallocate($img_copia, 240, 240, 240);
    //aloca cores para a imagem cópia.
    
    imagefill($img_copia, 0, 0, $cinza);
    //seta a cor de fundo para a imagem cópia.
    
    for($ix = 0; $ix < $iowidth; $ix++){
        for($iy = 0; $iy < $ioheight; $iy++){
            $rgb = ImageColorAt($img_original, $ix, $iy);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            //verifica a cor de cada pixel da imagem original.
            
            $cio = imagecolorallocate($img_copia, $r, $g, $b);
            //aloca para a imagem cópia a cor do pixel da imagem original.
            
            imagesetpixel($img_copia, $ix, $iy, $cio);
            //seta um pixel na imagem cópia, com a cor do pixel obtido da imagem original.
            
            imagecolordeallocate($img_copia, $cio);
            //desaloca a cor criada
        }
    }

    header("Content-type:image/jpeg");
    //define o cabeçalho do documento como uma imagem jpeg.
    
    imagejpeg($img_copia);
    //desenha a imagem cópia.
    
    imagedestroy($img_copia);
    imagedestroy($img_original);
    //destroy as duas imagens.
?>

o problema é que não aparece nada senão o fundo :blink:

alguém poderia me ajudar nisso?

Editado por Jair Humberto
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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