Image creation via PHP

Hi, I  have recently been working on a script which will create an image via PHP, but seems to have stumbled upon a big error.

My script is..


if($ploc=="Hev") { $im = imagecreatefrompng('Hev.png'); }
else if($ploc=="Sky") { $im = imagecreatefrompng('Sky.png'); }
else if($ploc=="Sur") { $im = imagecreatefrompng('Sur.png'); }
else if($ploc=="Dun") { $im = imagecreatefrompng('Dun.png'); }
else if($ploc=="Hel") { $im = imagecreatefrompng('Hel.png'); }


            <script language="JavaScript" type="text/javascript">
                  function loc(x,y) { s_Loc.innerHTML="Location: "+x+","+y; }
                  function ut() { s_Loc.innerHTML="<br>"; }
                  function kd(kdnum) { s_KD.innerHTML=kdnum; }
                  function kds(kdnum) { s_KDS.innerHTML=kdnum; }

      echo "Number of kingdoms: <span id=s_KD>".$kdc."</span> || Kingdoms Checked: <span id=s_KDS>".$kds."</span><p><span id=s_Pic>Old :: <br><img src=result.jpeg></span><p>";


$bg=imagecolorallocate($image, 0x00,0x00,0x00);

for ($i=0;$i<300;$i++){
      for ($j=0;$j<300;$j++){
            $start_x = $j;
            $start_y = $i;
            $color=imagecolorat($im, $start_x, $start_y);
            if($color==$colour) {
      echo "<script>kds(\"".number_format($kds)."\");</script>";
      echo "<script>kd(\"".number_format($kdc)."\");</script>";


echo "<p>New :: <br><img src=result.jpeg>";


The imagesetpixel() seems to not be working at all and therefore it prints a fully black image. This shouldn't happen. Can anyone suggest a fix? (based on the above script). Quickest and most efficient answer gets..... ooooohh.... 75 points?

EDIT: Upped to 100
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Where is $colour defined?

Have you verified the color value and the fact that imagesetpixel even gets called?
VampireofdarknessAuthor Commented:
Oh, sorry.
   $colour is a variable from a previous page (appears in /xx.php?colour=xx)
   $ploc is also the same
VampireofdarknessAuthor Commented:
and imagesetpixel does get called as it shows that there are 10,144 color matches
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

VampireofdarknessAuthor Commented:
Found a solution for myself... now to close this....

Thanks for your help anyway
I believe posting on the CS area will get it removed for you.

Was it a bad setting of $colour or something else?
VampireofdarknessAuthor Commented:
All I needed to do was define $colour before the loop with

$black=imagecolorallocate($image, 0x00,0x00,0x00);

for a black colour, etc..etc.. then use those colours.
Ah, so $colour was simply being defined in the loop and constantly matching up with the value of black?
VampireofdarknessAuthor Commented:
$colour wasn't being defined, for some reason although it should have been. Which is why it posted black.
That's what I had suspected when I saw it wasn't defined.  It was being defined with a default nothing value and so then black always matched with it.
PAQed, with points refunded (100)

E-E Admin

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.