Jump to content

Recommended Posts

Posted

This is my code, I think is same but your error is the $file var.

 

For example:

 

You have: $file = fopen('ftp://localhost/'.$name.'_'.$crest.'.bmp', 'r'); //fopen($filename,'rb');

 

Try to change, think that the file crest.php is in the same machine that server, replace "localhost" for the folder tree.

 

My $file var:

 

$file = fopen('/home/admin/gameserver/data/crests/'.$name.'_'.$crest.'.bmp', 'r'); //fopen($filename,'rb');

 

Because my server work under Linux and "fopen" read the folders in the machine.

 

 

I don't know to use with ftp protocol but if you want to use localhost take my mode.

 

If you use Windows probably is: $file = fopen('C:/server/gameserver/data/crests/'.$name.'_'.$crest.'.bmp', 'r'); //fopen($filename,'rb');

 

I'm not sure.

 

 

Hope that helps  ::)

 

 

<?


if(!empty($_GET['clan_crest'])){
$name = 'Crest';
$crest = $_GET['clan_crest'];
}
else if(!empty($_GET['ally_crest'])){
$name = 'AllyCrest';
$crest = $_GET['ally_crest'];
}
else
die('No Crest!');


$file = fopen('/home/admin/gameserver/data/crests/'.$name.'_'.$crest.'.bmp', 'r'); //fopen($filename,'rb');

$dds = fread($file,4);


if ($dds!=='DDS ') die("Error: no hay imagen DDS");


//DDS header

$hdrSize = readInt($file);

$hdrFlags = readInt($file);

$imgHeight = readInt($file)-4;

$imgWidth = readInt($file);

$imgPitch = readShort($file);



//DXT1 header

fseek($file, 84);

$dxt1 = fread($file,4);

if ($dxt1!=='DXT1') die("Error: no es formato DX1");


//here we go

fseek($file, 128);

header ("Content-type: image/png");

$img=imagecreatetruecolor($imgWidth,$imgHeight);


for ($y=-1; $y<$imgHeight/4; $y++)

{

  for ($x=0; $x<$imgWidth/4; $x++)

  {

    $color0_16 = readShort($file);

    $color1_16 = readShort($file);

    $r0 = ($color0_16 >> 11) << 3;

    $g0 = (($color0_16 >> 5) & 63) << 2;

    $b0 = ($color0_16 & 31) << 3;

    $r1 = ($color1_16 >> 11) << 3;

    $g1 = (($color1_16 >> 5) & 63) << 2;

    $b1 = ($color1_16 & 31) << 3;

    $color0_32 = imagecolorallocate($img,$r0,$g0,$b0);

    $color1_32 = imagecolorallocate($img,$r1,$g1,$b1);

    $color01_32 = imagecolorallocate($img,$r0/2+$r1/2,$g0/2+$g1/2,$b0/2+$b1/2);

    $black = imagecolorallocate($img,0,0,0);

    $data = readInt($file);

    for ($yy=0;$yy<4;$yy++)

    {

      for ($xx=0;$xx<4;$xx++)

      {

        $bb = $data & 3;

        $data = $data >> 2;

        switch ($bb)

        {

          case 0: $c = $color0_32; break;

          case 1: $c = $color1_32; break;

          case 2: $c = $color01_32; break;

          default: $c = $black; break;

        }

        imagesetpixel($img,$x*4+$xx,$y*4+$yy,$c);

      }

    }

  }

}



imagepng($img);



## Functions needed

function readInt($file)

{

  $b4 = ord(fgetc($file));

  $b3 = ord(fgetc($file));

  $b2 = ord(fgetc($file));

  $b1 = ord(fgetc($file));

  return ($b1<<24)|($b2<<16)|($b3<<8)|$b4;

}



function readShort($file)

{

  $b2 = ord(fgetc($file));

  $b1 = ord(fgetc($file));

  return ($b1<<8)|$b2;

}


?> 

Posted

Thank You very much friend I finally got it to work. I have wait so long to get this script working and if wasn't for your help I was never gonna get it done.

It is working perfectly.

One more time Thank you.

Posted

After a while, still

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\heroes.php on line 100

in heroes.php, some1 have any ideea?

  • 1 year later...
  • 2 months later...
  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock