ThinkPHP/Library/Vendor/ThinkImage/Driver/GIF.class.php

(开头部分) 14KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php
// +----------------------------------------------------------------------
// | TOPThink [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010 http://topthink.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 麦当苗儿 <zuojiazi.cn@gmail.com> <http://www.zjzit.cn>
// +----------------------------------------------------------------------
// | GIF.class.php 2013-03-09
// +----------------------------------------------------------------------

class GIF{
	/**
	 * GIF帧列表
	 * @var array
	 */
	private $frames = array();

	/**
	 * 每帧等待时间列表
	 * @var array
	 */
	private $delays = array();

	/**
	 * 构造方法,用于解码GIF图片
	 * @param string $src GIF图片数据
	 * @param string $mod 图片数据类型
	 */
	public function __construct($src = null, $mod = 'url') {
		if(!is_null($src)){
			if('url' == $mod && is_file($src)){
				$src = file_get_contents($src);
			}

			/* 解码GIF图片 */
			try{
				$de = new GIFDecoder($src);
				$this->frames = $de->GIFGetFrames();
				$this->delays = $de->GIFGetDelays();
			} catch(Exception $e){
				throw new Exception("解码GIF图片出错");
			}
		}
	}

	/**
	 * 设置或获取当前帧的数据
	 * @param  string $stream 二进制数据流
	 * @return boolean        获取到的数据
	 */
	public function image($stream = null){
		if(is_null($stream)){
			$current = current($this->frames);
			return false === $current ? reset($this->frames) : $current;
		} else {
			$this->frames[key($this->frames)] = $stream;
		}
后面还有 510 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。