Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LFN

Como ler a cor dos pixels de uma imagem?

Recommended Posts

Como assim???

 

vc tem uma imagem e quer que ele lhe traga todas as cores pixel por pixel dessa imagem?

 

Ou vc quer tipo marcar o local da imagem e ele lhe informar a cor dakele pixel que vc selecionou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, queria contar todos os pixels da imagem e pegar o valor das cores e imprimir o código da cor deles, transformando a imagem em imagem de letras, tipo matrix.

 

Mas até agora não consegui, dá erro:

 

 

<?php 
$image = new Imagick('php.png'); 


for ($i=0; $i<680; $i++){

$pixel = $image->getImagePixelColor($i, $o); 
echo $pixel;
if($o < 384){
$o++;
}

$cont++;
if($cont > 30){
$cont = 0;
echo "<br>";
}
}


?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. Qual erro?

 

2. Por que 680? É a largura da imagem? Evite números constantes. Faça o PHP identificar as dimensões da imagem

 

3. Onde você declarou $o?

 

4. Por que 384? É a largura? Evite números constantes. Faça o PHP identificar as dimensões da imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, 680 largura e 384 altura.

 

O erro é que não fica igual a imagem.

 

Estava tentando fazer aquele efeito de transformar imagens em textos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava tentando fazer aquele efeito de transformar imagens em textos...

Que efeito?

Você se refere a OCR? Se for isso, não é essa a forma correta.

 

 

Como eu disse no post anterior, $o também não está definida e vai gerar erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava tentando fazer aquele efeito de transformar imagens em textos...

 

o texto que você quer é o código da cor de cada pixel?

tem que fazer o loop pela altura e largura

 

por exemplo essa imagem: 99XmgEP.png

<?php
$img = imagecreatefrompng('../img/te.png');
$largura = imagesx($img);
$altura = imagesy($img);
for ($j = 0; $j < $altura; $j++) {
    for ($i = 0; $i < $largura; $i++) {
        $rgb = imagecolorat($img, $i, $j);
        $rgb = imagecolorsforindex($img, $rgb);
        echo str_pad($rgb['red'], 3, '_', STR_PAD_LEFT);
        echo str_pad($rgb['green'], 3, '_', STR_PAD_LEFT);
        echo str_pad($rgb['blue'], 3, '_', STR_PAD_LEFT);
    }
    echo '<br/>';
}

produzirá

 

152196_34152196_34152196_34152196_34152196_34152196_34152196_34152196_34152196_34152196_34152196_34

150194_32150194_32150194_32150194_32150194_32255255255145191_31148193_31150194_32150194_32150194_32

148192_31148192_31148192_31148192_31255255255255255255255255255137185_28146191_30148192_31148192_31

145190_29145190_29145190_29255255255255255255255255255255255255255255255133183_26143189_28145190_29

143187_28143187_28255255255255255255255255255255255255255255255255255255255255255131180_25141186_27

141185_26141185_26136182_25124175_22255255255255255255255255255104162_18112167_19124175_22136182_25

138182_24138182_24136181_24131177_22255255255255255255255255255105162_17121171_20131177_22136181_24

136180_22136180_22136180_22136180_22255255255255255255255255255106161_16126174_20136180_22136180_22

134177_21134177_21134177_21134177_21255255255255255255255255255103157_16124170_19134177_21134177_21

131175_19131175_19131175_19131175_19123170_18107160_15_99155_14107160_15123170_18131175_19131175_19

129173_18129173_18129173_18129173_18127171_18121168_17118166_16121168_17127171_18129173_18129173_18

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.