Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Queria saber como fazer isso. Será que existe uma forma?
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>";
}
}
?>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
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...
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
>
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: /applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/99XmgEP.png&key=0e08b4b62e323a7c315dee4e6509e9d53ee12e890d4d14ce3fa7773f1e64bf8c" alt="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
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?