php创建sprite

  

复制代码 代码如下:

  <?php

  $srcdir='./image/';

  $prefix="pic11_";

  $dst="image";

  $imagedir=scandir($srcdir);

  array_shift($imagedir);

  array_shift($imagedir);

  $width=0;

  $height=0;

  foreach ($imagedir as $key => $value) {

  $picinfo=getimagesize($srcdir.$value);

  $width=$picinfo[0]+$width;

  if ($height<$picinfo[1]) {

  $height=$picinfo[1];

  }

  }

  $image=imagecreatetruecolor($width,$height);

  imagesavealpha($image, true);

  $color=imagecolorallocatealpha($image,0,0,0,127) ;

  imagefill($image, 0, 0, $color);

  $width=0;

  $height=0;

  $css="";

  foreach ($imagedir as $key => $value) {

  $picinfo=getimagesize($srcdir.$value);

  $im=imagecreatefrompng($srcdir.$value);       //创建image

  imagecopymerge($image, $im, $width, 0, 0, 0, $picinfo[0], $picinfo[1],100);

  $picname=pathinfo($srcdir.$value);

  $css=".".$prefix.$picname['filename']."{height:".$picinfo[0]."px;width:".$picinfo[1]."px;background-position: -".$width."px 0px;}".$css;

  $width=$width+$picinfo[0];

  imagedestroy($im);             //销毁image

  }

  $css=$css."[class*=".$prefix."]{background-image:url('image.png');}}";

  $css=$css.".".$prefix."{background-image:url('image.png');}";  //兼容ie 系列

  file_put_contents("./".$dst.'.css',$css);

  imagepng($image,"./".$dst.'.png');

  imagedestroy($image);

  ?>

  <link rel="stylesheet" type="text/css" href="./image.css">

  <!-- <img src="./image.png"> -->

  <body style="background-color:#eee">

  <div class="pic11_css3">

  </div>

  <div class="pic11_firefox">

  </div>

  <div class="pic11_chrome">

  </div>

  <span class="css3">

  </span>

  <span class="sprite firefox">

  </span>

  </body>