[php]kleurwaardes uit plaatje halen

Pagina: 1
Acties:

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 20:33
ik heb een png plaatje dat ik wil omzetten in een hoogtemap.
het plaatje bevat 8 kleuren (grijstinten) en die wil ik dus uitlezen en omzetten in een getal van 0 tot 8

nou heb ik wel wat dingen gemaakt maar ik kom niet uit het gedeelte met die klote arrays :)

stel nou dat ik de kleuren uitlees en stuk voor stuk in een array gooi. dat lukt me dus ook al niet :)

daarna gooi ik alle duplicaten eruit met array_unique en dan sort ik ze.

ik krijg dan steeds incorrect datatype :(

maar oke stel nou dat ik daarna nog eens door het plaatje ren en uit die array aan de hand van de kleur die ik uit het plaatje trek de hoogte uit de array lees, hoe doe ik dat ?
iemand een idee/scriptje?

hier is mijn code, ik heb alleen dat hele array gebueren er even uitgehaald en zelf gekeken welke kleuren er zijn en ze waardes gegeven, dat moet dus ook automatish.
PHP:
1
<?<table><?$height[70]= 0;$height[77]= 1;$height[82]= 2;$height[93]= 3;$height[110]= 4;$height[140]= 5;$height[158]= 6;$height[189]= 7;$image=imagecreatefrompng($file);for ($j = 1; $j <= 50; $j++){echo"<tr>";    for ($i = 1; $i <= 50; $i++){        $color=imagecolorat($image, $j, $i);        echo"<td>$height[$color]</td>";    }echo"</tr>";}?></table>?>

alvast bedankt

openkat.nl al gezien?


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 20:33
mensen? iemand een idee?

kort samen gevat:
ik doe 2500 keer een functie
ik krijg 2500 getallen terug (8 verschilledne)
ik wil deze in een array stoppen
ik wil deze daarna filteren op dubbele waardes
daarna sorteren van laag naar hoog.
en daarna moet ik nog een keer door de eerste functie heen lopen en voor iedere waarde een getal van 0 tot 7 uitleze aan de hand van de net gebouwde index.

:)
kortom t lukt me niet, ben niet handig genoeg met arrays blijkbaar :)

openkat.nl al gezien?


  • Grum
  • Registratie: Juni 2001
  • Niet online
wat is je error precies ?

en over welke stukje code gaat die error precies ? :p

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 20:33
als ik de erray door de functies array_unique en aosrt of sort heen haal dan krijg ik: wrong datatype.

kortom er wordt geen array gebouwd als ik in die for loops dit neer zet.
PHP:
1
<?$erray[]=imagecolorat($image, $j, $i);?>

dit zou dan toch alle 2500 waardes in die array moeten gooien? of nie?

en als ik nou een teller mee laat lopen
PHP:
1
<?$erray[$count]=imagecolorat($image, $j, $i);?>

dan wordt de hele array weer gevuld het getal dat er in plekje 0 staat.
ik lees hem daarna gewoon zo uit:
PHP:
1
<?while(list($color)=$erray){   echo"$color<BR>";}?>

kortom ben ik dan dom ofuuhh ?: zal wel btw.

openkat.nl al gezien?


  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
doe eens print_r($array) en kijk wat er in de array zit.

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Weet je wel zeker dat die functie integers uitpoept? Misschien moet je ze eerst casten????

  • Grum
  • Registratie: Juni 2001
  • Niet online
de functie poept de kleur index uit (en NIET de kleur) :P

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 20:33
kleur indez, is toch geleik aan hoogte in een grayscale height map dus dat boeit niet

openkat.nl al gezien?


Verwijderd

Lijkt me handig dat je inderdaad eerst de goede type van je arrayvalue cast. Als je met integers wilt werken heb je dus niets aan strings.
(check is_int om te kijken of je een integer hebt).
PHP:
1
<?$value = 1; //is integer$value = "1"; //is string?>

  • Grum
  • Registratie: Juni 2001
  • Niet online
Op maandag 04 maart 2002 16:42 schreef daniel_hoenderdos het volgende:
Lijkt me handig dat je inderdaad eerst de goede type van je arrayvalue cast. Als je met integers wilt werken heb je dus niets aan strings.
(check is_int om te kijken of je een integer hebt).
PHP:
1
<?$value = 1; //is integer$value = "1"; //is string?>
Bullshit ... dit maakt voor php geen ene RUK uit ... hij weet het maar hij doet er nix mee - helaas -

Voor php is dit (helaas) identiek:
PHP:
1
<?$theArray["1"] = "Waarde";print $theArray[1];?>

MAAR je kan et verschil wel zien als jij een gettype doet of compared met === of !===
Pagina: 1