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>

(0)

相关推荐

  • 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.$v

  • python使用pygame创建精灵Sprite

    一 .精灵(Sprite),屏幕上的对象.精灵组是精灵的组合.创建空的精灵组对象: 精灵组可以对其中的所有精灵调用它们各自的更新方法(self.update)来进行更新,如位置更新.碰撞检测.冲突检测等: all_sprites.update() 精灵组可以对其中的所有精灵调用它们各自的DRAW方法(self.update)来绘制精灵: all_sprites.draw(screen) 二.创建精灵 1.创建精灵需要继承基类pg.sprite.Sprite.每个Pygame精灵都必须拥有两个属性

  • JavaScript中 创建动态 QML 对象的方法

    一.动态创建对象 有两种方法可以从 JavaScript 动态创建对象: 调用 Qt.createComponent() 动态创建 Component 对象 使用 Qt.createQmlObject() 从 QML 字符串创建对象 虽然动态创建的对象可以与其他对象一样使用,但它们在 QML 中没有 id. 1.1.动态创建组件 可以调用它的 createObject() 方法来创建该组件的一个实例.这个函数可以接受两个参数: 第一个是新对象的父对象.父对象可以是图形对象(即 Item 类型)或

  • python实现滑雪者小游戏

    引言 这是一个用pygame写的滑雪者的游戏. skier从上向下滑,途中会遇到树和旗子,捡起一个旗子得10分,碰到一颗树扣100分,可以用左右箭头控制skier方向. 安装pygame pip install pygame 用pip或设置界面安装,可自行百度 以下是主界面代码,每一个类都是一个py文件,需要导包 import pygame import random from settings import Settings from skier import Skier from treeF

  • Unity实现换装系统

    Unity如何实现换装系统,供大家参考,具体内容如下 1.创建Sprite Library Asset 2.添加新目录 Label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入Sprite中 3.添加组件 给需要换装的部位添加Sprite Resolver组件(如头部换装,就在头部对象挂载组件) 选择目录名,就会出现之前Library Asset中拖拽的图片内容,点击不同图片可以预览效果(如果出现装备位置偏移,需调整图片的pivot) 4.通过代码实现换装 小笔记: 1).Unit

  • unity 文件流读取图片与www读取图片的区别介绍

    IO流代码: void LoadByIO() { float time = Time.time; FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); fs.Seek(0, SeekOrigin.Begin); byte[] bytes = new byte[fs.Length]; fs.Read(bytes, 0, (int)fs.Length); fs.Close(); fs.Dispose(); fs =

  • 解决在Unity中使用FairyGUI遇到的坑

    首先!首先!首先! 首先,我们由于历史问题,项目用的UI编辑器不是大众使用的GUI或者NGUI, 而是使用不知道算不算小众的FairyGUI,这个UI系统使用挺方便的,也提供了很多UI编码的案例,至少从直接使用来说方便了不少. 但是!但是!但是! 可能用到这个UI编辑器的不是那么多,项目上遇到的问题在网上百度出来的结果很少,基本自己断点查找bug. 最后!最后!最后! 我这个从没写过几次技术博客的人,要写这篇技术贴的原因是:昨晚加班到四五点钟查找BUG回到屋里,发现由于没有关好自己卧室的门,室友

  • C++基础入门教程(六):为什么创建类的时候要用new?

    今天是关于指针初步介绍的最后一篇,也是能让初学者明白为什么类是new出来的.为什么某些变量会莫名被释放,以及为什么木头会这么聪明. 1.使用new创建动态结构体 还记得我们的结构体吧?之前说过,结构体也是可以通过new来创建存储空间的,返回的是一个指向结构体类型空间的指针. 如下代码: 复制代码 代码如下: struct Man     {         int age;         int IQ;     };     Man* pMan = new Man;     pMan->IQ

  • Java应用程序中创建图像

    合成图像 您不必从文件中读取所有的图像 - 您可以创建自己的图像.要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中.它还支持各种存储像素数据的方法:使用或不使用 alpha 通道.不同种类的颜色模型以及颜色组件的各种精确度.ColorModel 类提供一种灵活的方法定义各种颜色模型,以和 BufferedImage 对象一起使用.为了理解颜色模型工作的基本知识,我们将只使用一个缺省的颜色模型,其颜

  • Android ApiDemo示例工程的创建

    一般SDK中都会带有一些示例程序,说明具体用法,Android SDK也是如此.它提供了一些ApiDemo示例,详细说明了Android中主要API,分为以下几大类:        1.App        2.Content        3.Graphics        4.Media        5.OS        6.Text        7.Views 每个大类又分为几个小类,一共大约有200多个实例,涵盖了Android OS API的各个方面.下面是所有示例的列表: Ap

随机推荐