PHP轻量级图表类PHP Light Chart:PLChart

PLChart是一款PHP图表生成工具,支持饼状图、柱状图及折线图的生成,并提供2D/3D效果选择。用户可通过简单设置完成高质量图表的创建,并将图表输出至浏览器或保存为文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该类可以生成饼状图(2D/3D),柱状图(2D/3D),以及折线图,可控制输出至浏览器或文件,控制输出的jpeg图像的质量。
所有的设置工作只有5个函数:
1。图表背景色设置setbgcolor()
2。图表参数设置setchartdata()
2。图表标题设置settitle()
3。图表注释设置setdesc()
4。图表图形设置setgraphics()

详细的设置参数请参考文档注释或是后面的测试页面demo.php

<?php 
/*
  * PLChart - PHP图表生成工具 - Create charts in PHP 
  * 
  * ====================================================================   
  *    Filename :    plchart.php   
  *    Summary:      PLChart图表类文件 - PLChart class file 
  *    Author:       zeroleonhart ( msn:zeroleonhart@hotmail.com ) 
  *    Version:      0.060811 
  *    Copyright (c)2006 zeroleonhart@hotmail.com 
  * ==================================================================== 
  * 
  * 
  
*/ 
   
class plchart 

    
// ============================ 参数定义 - define references ============================ 

// 图表变量 - chart variable 

var $chart

// 图表类型 - chart type 
var $type

// 3D效果 - 3D effect 
var $d3d

// 图表宽度 - chart width 
var $width

// 图表高度 - chart height 
var $height

// 图表质量 - chart quality 
var $quality
     
    
// 图表背景色 - image backgroundcolor 
var $bgcolor = array(); 
       
    
// 图表参数 - chart parameter 
var $param = array(); 

// 保存为文件的路径 - saving file directory 
var $savefile

// 图形参数 - graphics references 
var $graphics = array(); 

// 标题参数 - title references 
var $title = array(); 

// 注释参数 - description references 
var $desc = array(); 

// 图表颜色数组 - colors array in chart 
var $colors = array(); 

// 颜色定义 - define color 
var $colordefine = array
                             
"lightgray" => array(192, 192, 192), 
                 
"darkgray" => array(144, 144, 144), 
     
                 
"lightred" => array(255, 0, 0), 
                 
"darkred" => array(128, 0, 0), 
     
                 
"lightgreen" => array(0, 255, 0), 
                 
"darkgreen" => array(0, 80, 0), 
     
                 
"lightblue" => array(0, 0, 255), 
                 
"darkblue" => array(0, 0, 80), 
     
                 
"lightyellow" => array(255, 255, 0), 
                 
"darkyellow" => array(200, 200, 50), 
     
                 
"lightcyan" => array(0, 255, 255), 
                 
"darkcyan" => array(0, 90, 90), 
                ); 
     
   
// ============================ 设置函数 - setting functions ============================ 
                 
/* 
  * @todo  设置图像背景色 - set the backgroundcolor of the chart image 
  * 
  * @param  int $red       
  * @param  int $green     
  * @param  int $blue     
  * 
  
*/ 
function setbgcolor($red = 0, $green = 0, $blue = 0

       
     
$this->bgcolor[0= $red
  
$this->bgcolor[1= $green
  
$this->bgcolor[2= $blue



/* 
  * @todo  设置图像参数 - set the parameters of the chart image 
  * 
  * @param  string $type 
  * @param  int $d3d 
  * @param  int $width 
  * @param  int $height 
  * @param  int $quality 
  * @param  array $data 
  * @param  string $savefile 
  * 
  
*/ 
function setchartdata($type = "pie", $d3d = 1, $width = 400, $height = 400, $quality = 70, $data = array(), $savefile = ''

       
     
$this->type = $type;     // 图表类型 - type of the chart : pie, column, line 
  $this->d3d = $d3d;     // 3D效果 - 
  $this->width = $width;     // 图表宽度 
  $this->height = $height;     // 图表高度 
  $this->quality = $quality;     // 图表显示质量 
  $this->param = $data;     // 源数据数组 
  $this->savefile = $savefile;     // 保存文件路径 
   




/* 
  * @todo  设置图像标题 - set the title of the chart 
  * 
  * @param  string $tstring 
  * @param  float $tfontsize 
  * @param  float $tangle 
  * @param  int $tposx 
  * @param  int $tposy 
  * @param  string $tfontfile 
  * @param  int $tfred       
  * @param  int $tfgreen     
  * @param  int $tfblue     
  * 
  
*/ 
function settitle($tstring = '', $tfontsize = 20, $tangle = 0, $tposx = 10, $tposy = 20, $tfontfile = 'c:/windows/fonts/simhei.ttf', $tfred = 0, $tfgreen = 0, $tfblue = 0

     
$this->title = array($tfontsize, $tangle, $tposx, $tposy, $tfontfile, $tstring, $tfred, $tfgreen, $tfblue); 





/* 
  * @todo  设置图像注释 - set the decsription of the chart 
  * 
  * @param  int $dposx 
  * @param  int $dposy 
  * @param  int $dwidth 
  * @param  int $dheight 
  * @param  int $dmargin 
  * @param  int $dsize 
  * @param  int $dangle 
  * @param  string $dfontfile 
  * @param  int $dfred   
  * @param  int $dfgreen     
  * @param  int $dfblue     
  * 
  
*/ 
function setdesc($dposx = 0, $dposy = 0, $dwidth = 100, $dheight = 300, $dmargin = 10, $dsize = 10, $dangle = 0, $dfontfile = 'c:/windows/fonts/simhei.ttf', $dfred = 0, $dfgreen = 0, $dfblue = 0

     
$this->desc = array($dposx, $dposy, $dwidth, $dheight, $dmargin, $dsize, $dangle, $dfontfile, $dfred, $dfgreen, $dfblue); 





/* 
  * @todo  设置图形 - set the graphics of the chart 
  * 
  * @param  int $gstartx 
  * @param  int $gstarty 
  * @param  int $gwidth 
  * @param  int $gheight 
  * @param  int $gmargin       
  * @param  float $shadow     
  * 
  
*/ 
function setgraphics($gstartx = 0, $gstarty = 0, $gwidth = 100, $gheight = 100, $gmargin = 10, $shadow = 0.1

     
$this->graphics = array($gstartx, $gstarty, $gwidth, $gheight, $gmargin, $shadow); 





// ============================ 生成函数 - build functions ============================ 

/* 
     * @todo  生成图表实例 - build chart object 
     * 
     
*/ 
    
function buildchart() 
    { 
     
// 图像头信息 - header of the image file 
        header("Content-type: image/jpeg"); 

  
// 建立图像 - create image 
        $this->chart = imagecreatetruecolor($this->width, $this->height); 
   
  
// 填充背景色 - set backgroundcolor 
  $bgc = imagecolorallocate($this->chart, $this->bgcolor[0], $this->bgcolor[1], $this->bgcolor[2]); 
        imagefill(
$this->chart, 0, 0, $bgc); 
   
  
// 定义颜色 - allocate colors in the graphics                     
     foreach($this->colordefine as $key => $value
     { 
           $
$key = imagecolorallocate($this->chart, $value[0], $value[1], $value[2]); 
     
array_push($this->colors, $$key);    // 颜色变量入栈 - add color variables into array 
   
     } 





/* 
     * @todo  生成图表标题 - build title of the chart 
     * 
     
*/ 
    
function buildtitle() 
    { 
      
// 设置标题颜色 - set title color 
      $titlecolor = imagecolorallocate($this->chart, $this->title[6], $this->title[7], $this->title[8]); 
   
// 写标题 - write title 
   imagettftext($this->chart, $this->title[0], $this->title[1], $this->title[2], $this->title[3], $titlecolor, $this->title[4], $this->title[5]); 
   




/* 
     * @todo  生成图表说明 - build description of the chart 
     * 
     
*/ 
    
function builddesc() 
    { 
      
// 注释位置变量 - image position variables 
      $dposx = $this->desc[0]; 
   
$dposy = $this->desc[1];     // 注释起始坐标 - the start position of the description 
      $w = $this->desc[2];     // 注释部分宽度 - width of all description 
      $h = $this->desc[3];     // 注释部分高度 - height of all description 
      $num = count($this->param);     // 注释数量 - number of description lines 
      $perh = round($h / $num);      // 每行注释的平均高度 - height of each description line 
      $margin = $this->desc[4];     // 注释的间距 - margin between square and font 
      $dsize = $this->desc[5];     // 注释的字体大小 - font size of description 
   $dangle = $this->desc[6];     // 注释的字体角度 - font display angle of description 
   $dfontfile = $this->desc[7];     // 注释的字体文件 - font file of description 
   $dfcolor = imagecolorallocate($this->chart, $this->desc[8], $this->desc[9], $this->desc[10]);     // 注释的字体颜色 - font color of description 
   
   // 写注释 - write description 

   $dstring = array_keys($this->param); 
   
for($i = 0$i < $num$i++
   { 
        
// 矩形色块 - colorful square 
        imagefilledrectangle($this->chart, $dposx, $dposy, $dposx + $dsize, $dposy + $dsize, $this->colors[$i * 2]); 
     
     
// 写文字 - write string 
     imagettftext($this->chart, $dsize, $dangle, $dposx + $dsize + $margin, $dposy + $dsize, $dfcolor, $dfontfile, $dstring[$i. " - " . $this->param[$dstring[$i]]); 
     
     
// 下移 - move down to write next description 
     $dposy += $perh
   
   } 
    } 

     
/* 
     * @todo  生成图形 - build graphics of the chart 
     * 
     * @param  source $chart 
     * @param  int $d3d 
     * @param  array $param 
  * @param  array $colordefine 
     * 
     
*/   
    
function buildgraphics() 
    { 
        
// 定义生成图形函数 - define make graphics function 
  // ====================   饼状图 - pie   ==================== 

  if($this->type == "pie"
  {   
             
// 取得图形位置 - get the positoin of the graphics 
          $posx = $this->graphics[0]; 
    
$posy = $this->graphics[1]; 
     
    
// 取得图形宽度和高度 - get width and height of the graphics 
             $w = $this->graphics[2]; 
          
$h = $this->graphics[3]; 
   
          
// 图形边距 - graphics margin 
          $margin = $this->graphics[4]; 
   
          
// 3D阴影高度对于椭圆高度的比例 - percent of 3D effect shadow height as the height of the ellipse 
          $shadow = $this->graphics[5]; 
   
          
// 图形位置变量 - image position variables 
          $centerx = round($posx + $w / 2 + $margin); 
    
$centery = round($posy + $h / 2 + $margin);     // 椭圆中心坐标 - the center of the ellipse         

          // 数据处理 - data process 

          $total = array_sum($this->param);     // 取得总数 - get total 
          $percent = array(0);     // 保存比例 - save each percent 
    $temp = 0
          
foreach($this->param as $v
          { 
         
              
$temp += 360 * ($v / $total); 
              
array_push($percent, $temp);     // 保存角度 - save angle 
   
          } 
               
          
// 生成饼状图 - make pie chart   
    // 生成3D饼状图 - make 3D pie chart 

    if($this->d3d == 1)     
          { 
                 
// 3D阴影 - make 3D shadow 
                    for ($j = ($centery * (1 + $shadow)); $j > $centery$j--)   
                 { 
                           
for ($k = 0$k < count($percent)-1$k++
                     { 
       
                       imagefilledarc(
$this->chart, $centerx, $j, $w, $h, $percent[$k], $percent[$k + 1], $this->colors[$k * 2 + 1], IMG_ARC_NOFILL); 
     
               } 
                    } 
     
             } 
    
// 生成平面饼状图 - make 2D pie chart     
       for ($i = 0$i < count($percent)-1$i++
       { 
       
     imagefilledarc(
$this->chart, $centerx, $centery, $w, $h, $percent[$i], $percent[$i + 1], $this->colors[$i * 2], IMG_ARC_PIE); 
     
       } 
               
  } 
   
  
// ====================   柱状图 - column   ====================     
  elseif($this->type == "column"
  { 
       
// 取得图形位置 - get the positoin of the graphics 
          $posx = $this->graphics[0]; 
    
$posy = $this->graphics[1]; 
     
    
// 取得图形宽度和高度 - get width and height of the graphics 
             $w = $this->graphics[2]; 
          
$h = $this->graphics[3]; 
   
          
// 图形边距 - graphics margin 
          $margin = $this->graphics[4]; 
   
          
// 3D阴影高度对于柱体宽度的比例 - percent of 3D effect shadow height as the width of the column 
          $shadow = $this->graphics[5]; 
   
          
// 图形位置变量 - image position variables 
          $startx = round($posx + $margin); 
    
$starty = round($posy + $h - $margin);     // 图形左下角坐标 - the left-bottom position of the graphics         

          // 数据处理 - data process 

          $maxvalue = max($this->param);    // 取得最大值 - get max value 
    $num = count($this->param);     // 取得条柱个数 - get number of columns 
    $multiple = floor(log10($maxvalue));     // 取得数值区间 - get data field 
    $field = floor($maxvalue / pow(10, $multiple)) + 1;     // 区间数 - number of unit fields 
          $fieldnumber = $field > 5 ? $field : 5;     // 数据区域数量 - number of data fields 
          $topvalue = $field * pow(10, $multiple);     // 图表最高点数值 - value of the top 
    $unitx = ($w - $margin * 2/ $num;     // 取得x单位长度 - get x unit length 
    $unity = ($h - $margin * 2/ $fieldnumber;     // 取得y单位长度 - get y unit length 
    $shadowheight = $unitx / 2 * $shadow;     // 阴影宽度 - shadow height 
     
    // 初始化坐标系 - initialize reference frame 

    if($this->d3d == 1)     // 3D效果 - 3D effect 
    { 
           imagefilledpolygon(
$this->chart, array($startx, $starty, $startx + $shadowheight, $starty - $shadowheight, $startx + $shadowheight, $posy - $shadowheight, $startx, $posy), 4, $this->colors[0]); 
           imageline(
$this->chart, $startx + $shadowheight, $starty - $shadowheight, $startx + $shadowheight, $posy - $shadowheight, $this->colors[1]);       
    } 
    imageline(
$this->chart, $startx, $starty, $posx + $w, $starty, $this->colors[1]);     // x 
    imageline($this->chart, $startx, $starty, $startx, $posy, $this->colors[1]);     // y 
     
    // 区间标识 - declare fields 

    for($i = 0$i <= $fieldnumber$i++)     
    { 
         
// 区间标识线 - lines declaring fields 
      // 3D效果 - 3D effect 

            if($this->d3d == 1
            { 
             imageline(
$this->chart, $startx, $starty - $unity * $i, $startx + $shadowheight, $starty - $unity * $i - $shadowheight, $this->colors[1]); 
       imageline(
$this->chart, $startx + $shadowheight, $starty - $unity * $i - $shadowheight, $posx + $w + $shadowheight, $starty - $unity * $i - $shadowheight, $this->colors[1]); 
      } 
      
// 2D - 2D 
      else 
      { 
                   imageline(
$this->chart, $startx, $starty - $unity * $i, $posx + $w, $starty - $unity * $i, $this->colors[0]);       
      } 
     
// 区间说明 - field description 
            imagettftext($this->chart, $this->desc[5], $this->desc[6], $posx, $starty - $unity * $i, $this->colors[0], $this->desc[7], $topvalue / $fieldnumber * $i);     
    } 
       
    
// 生成条柱 - make columns 
    $paramkeys = array_keys($this->param); 
          
for($j = 0$j < $num$j++
          { 
         
              
$columnheight = ($h - $margin * 2* ($this->param[$paramkeys[$j]] / $topvalue);     // 条柱高度 - column height 
     $columnx = $startx + $unitx / 4 + $unitx * $j;     // 条柱起点x坐标 - x coordinate of column 
              imagefilledrectangle($this->chart, $columnx, $starty - $columnheight, $columnx + $unitx / 2, $starty - 1, $this->colors[$j * 2]);     // 画条柱 - draw columns   
                 
     // 3D效果 - 3D effect 

           if($this->d3d == 1
           { 
         
// 轮廓线 - contour line 
                  imagerectangle($this->chart, $columnx, $starty - $columnheight, $columnx + $unitx / 2, $starty - 1, $this->colors[$j * 2 + 1]); 
                  
// 3D表面 - 3D top 
         imagefilledpolygon($this->chart, array($columnx, $starty - $columnheight, $columnx + $unitx / 2, $starty - $columnheight, $columnx + $unitx / 2 + $shadowheight, $starty - $columnheight - $shadowheight, $columnx + $shadowheight, $starty - $columnheight - $shadowheight), 4, $this->colors[$j * 2]); 
         imagepolygon(
$this->chart, array($columnx, $starty - $columnheight, $columnx + $unitx / 2, $starty - $columnheight, $columnx + $unitx / 2 + $shadowheight, $starty - $columnheight - $shadowheight, $columnx + $shadowheight, $starty - $columnheight - $shadowheight), 4, $this->colors[$j * 2 + 1]); 
         
// 3D阴影 - 3D shadow 
         imagefilledpolygon($this->chart, array($columnx + $unitx / 2, $starty, $columnx + $unitx / 2 + $shadowheight, $starty - $shadowheight, $columnx + $unitx / 2 + $shadowheight, $starty - $columnheight - $shadowheight, $columnx + $unitx / 2, $starty - $columnheight), 4, $this->colors[$j * 2 + 1]); 
         imagepolygon(
$this->chart, array($columnx + $unitx / 2, $starty, $columnx + $unitx / 2 + $shadowheight, $starty - $shadowheight, $columnx + $unitx / 2 + $shadowheight, $starty - $columnheight - $shadowheight, $columnx + $unitx / 2, $starty - $columnheight), 4, $this->colors[$j * 2 + 1]); 
           } 
          } 
       
  } 
   
  
// ====================   曲线图 - line   ==================== 
  else 
  { 
   
       
// 取得图形位置 - get the positoin of the graphics 
          $posx = $this->graphics[0]; 
    
$posy = $this->graphics[1]; 
     
    
// 取得图形宽度和高度 - get width and height of the graphics 
             $w = $this->graphics[2]; 
          
$h = $this->graphics[3]; 
   
          
// 图形边距 - graphics margin 
          $margin = $this->graphics[4]; 
     
    
// 每个点的直径 - diameter of each point 
          $pointsize = $this->graphics[5* 20
   
          
// 图形位置变量 - image position variables 
          $startx = round($posx + $margin); 
    
$starty = round($posy + $h - $margin);     // 图形左下角坐标 - the left-bottom position of the graphics         

          // 数据处理 - data process 

          $maxvalue = max($this->param);    // 取得最大值 - get max value 
    $minvalue = min($this->param);    // 取得最小值 - get min value 
    $num = count($this->param);     // 取得点个数 - get number of points 
    $fieldnumber = $num;     // 数据区域数量 - number of data fields 
    $fielddata = $maxvalue - $minvalue;     // 取得数据区间 - get data field 
    $unitdata = $fielddata / $fieldnumber;     // 取得单位区间数值 - get unit field data value 
    $unitx = ($w - $margin * 2/ $num;     // 取得x单位长度 - get x unit length 
    $unity = ($h - $margin * 2/ $fieldnumber;     // 取得y单位长度 - get y unit length 
     
    // 初始化坐标系 - initialize reference frame 

    imageline($this->chart, $startx, $starty, $posx + $w, $starty, $this->colors[1]);     // x 
    imageline($this->chart, $startx, $starty, $startx, $posy, $this->colors[1]);     // y 
     
    // 区间标识 - declare fields 

    for($i = 0$i <= $fieldnumber$i++)     
    { 
            
// 标识线 - declaring fields line 
      imageline($this->chart, $startx, $starty - $unity * $i, $posx + $w, $starty - $unity * $i, $this->colors[0]);       
      
// 区间说明 - field description 
            imagettftext($this->chart, $this->desc[5], $this->desc[6], $posx, $starty - $unity * $i, $this->colors[0], $this->desc[7], $minvalue + $unitdata * $i);     
    } 
       
    
// 生成线条 - make line 
    $paramkeys = array_keys($this->param); 
    
$loca = array();     // 保存轨迹的数组 - array to save locas 
          for($i = 0$i < $num$i++)     // 得到轨迹数组 - get loca array 
          { 
           
// 点x坐标 - x coordinate of the point 
                 $pointx = $startx + $unitx * $i
     
// 点y坐标 - y coordinate of the point     
              $pointy = $starty - $unity * $fieldnumber * (($this->param[$paramkeys[$i]] - $minvalue/ $fielddata); 
     
// 坐标数据入栈 - push coordinates into array     
                    $loca[$i * 2= $pointx
     
$loca[$i * 2 + 1= $pointy
     
// 画点 - draw point 
     imagefilledellipse($this->chart, $pointx, $pointy, $pointsize, $pointsize, $this->colors[$i * 2]); 
          } 
    
$linecolor = imagecolorallocate($this->chart, $this->title[6], $this->title[7], $this->title[8]);     // 定义线条颜色 - define line color 
    for($i = 0$i < $num + 3; ) 
    { 
           
// 画线条 - draw line 
     imageline($this->chart, $loca[$i], $loca[$i + 1], $loca[$i + 2], $loca[$i + 3], $linecolor); 
     
$i += 2
    } 
     
  } 
    } 



/* 
  * @todo  输出图像至浏览器或文件 - output the chart image to browser or file 
  
*/ 
    
function outputchart() 

     
  
// 建立图标 - build chart 
  $this->buildchart(); 
  
// 写入图形 - build graphics 
        $this->buildgraphics(); 
   
  
// 写入注释 - build description 
        $this->builddesc(); 
         
  
// 写入标题 - build title 
  $this->buildtitle(); 
   
  
// 输出图像 - flush image 
        imagejpeg($this->chart, $this->savefile, $this->quality); 
        imagedestroy(
$this->chart); 
   
    } 



?> 


********************************************************************************* 

演示文件demo
.php: 
********************************************************************************** 
<?php 
// 载入类文件 
include('plchart.php'); 
   
//设置数据数组 
$data = array("1月份:11%" => 20, "2月份:16%" => 23, "3月份:19%" => 27, "4月份:13%" => 18, "5月份:18%" => 24, "6月份:12%" => 25); 
     
// 实例化 
$chart = new plchart(); 
   
// 设置背景色 
// 三个参数为0-255 

$chart->setbgcolor(255,255,255);     
// 设置标题文字 
$title = <<< string 
图表测试 
TEST PIE CHART 
string
// 设置图表数据 
/*
 
* 第一个参数为图表类型,只能是三个值:pie, column, line 
* 第二个参数为是否启用3D显示,0代表不启用,1代表启动 
* 第三个参数为图表的宽度 
* 第四个参数为图表的高度 
* 第五个参数为图表的图片质量,0-100,100为最佳质量,但文件相对也最大 
* 第六个参数为原数据数组 
*/ 
$chart->setchartdata("line", 0, 800, 600, 100, $data); 
     
// 设置标题 
/*
 
* 第一个参数为标题的字符串 
* 第二个参数为标题字体大小 
* 第三个参数为标题倾斜角度 
* 第四个参数为标题位于图表的起始横坐标 
* 第五个参数为标题文字的基准纵坐标 
* 第六个参数为标题字体文件 
* 最后三个参数为标题字体的RGB颜色 
*/ 
$chart->settitle($title, 20, 0, 10, 20, 'c:/windows/fonts/simhei.ttf', 0, 0, 0); 
// 设置注释 
/*
 
* 第一个参数为注释位于图表的起始横坐标 
* 第二个参数为注释位于图表的起始纵坐标 
* 第三个参数为注释部分的宽度 
* 第四个参数为注释部分的高度 
* 第五个参数为注释内容与注释部分边框的间距 
* 第六个参数为注释字体大小 
* 第七个参数为注释字体倾斜角度 
* 第六个参数为注释字体文件 
* 最后三个参数为注释字体的RGB颜色 
*/ 
$chart->setdesc(500, 100, 200, 300, 10, 18, 0, 'c:/windows/fonts/simhei.ttf', 0, 0, 0); 
     
// 设置图形 
/*
 
* 第一个参数为图形部分位于整个图表的左上角横坐标 
* 第二个参数为图形部分位于整个图表的左上角纵坐标 
* 第三个参数为图形部分的宽度 
* 第四个参数为图形部分的高度 
* 第五个参数为图形与图形部分边框的间距(纵坐标标记的宽度) 
* 第六个参数为3D阴影的相对比例或是轨迹图中圆点的直径 
*/ 
$chart->setgraphics(10, 100, 500, 500, 50, 0.3); 
     
// 输出图表 
$chart->outputchart();     
// 销毁实例 
unset($chart); 
?> 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值