export.php
上传用户:ntgydz
上传日期:2022-07-17
资源大小:261k
文件大小:2k
源码类别:

FlashMX/Flex源码

开发平台:

Flash/ActionScript

  1. <?php
  2. // amcharts.com export to image utility
  3. // set image type (gif/png/jpeg)
  4. $imgtype = 'jpeg';
  5. // set image quality (from 0 to 100, not applicable to gif)
  6. $imgquality = 100;
  7. // get data from $_POST or $_GET ?
  8. $data = &$_POST;
  9. // get image dimensions
  10. $width  = (int) $data['width'];
  11. $height = (int) $data['height'];
  12. // create image object
  13. $img = imagecreatetruecolor($width, $height);
  14. // populate image with pixels
  15. for ($y = 0; $y < $height; $y++) {
  16.   // innitialize
  17.   $x = 0;
  18.   
  19.   // get row data
  20.   $row = explode(',', $data['r'.$y]);
  21.   
  22.   // place row pixels
  23.   $cnt = sizeof($row);
  24.   for ($r = 0; $r < $cnt; $r++) {
  25.     // get pixel(s) data
  26.     $pixel = explode(':', $row[$r]);
  27.     
  28.     // get color
  29.     $pixel[0] = str_pad($pixel[0], 6, '0', STR_PAD_LEFT);
  30.     $cr = hexdec(substr($pixel[0], 0, 2));
  31.     $cg = hexdec(substr($pixel[0], 2, 2));
  32.     $cb = hexdec(substr($pixel[0], 4, 2));
  33.     
  34.     // allocate color
  35.     $color = imagecolorallocate($img, $cr, $cg, $cb);
  36.     
  37.     // place repeating pixels
  38.     $repeat = isset($pixel[1]) ? (int) $pixel[1] : 1;
  39.     for ($c = 0; $c < $repeat; $c++) {
  40.       // place pixel
  41.       imagesetpixel($img, $x, $y, $color);
  42.       
  43.       // iterate column
  44.       $x++;
  45.     }
  46.   }
  47. }
  48. // set proper content type
  49. header('Content-type: image/'.$imgtype);
  50. header('Content-Disposition: attachment; filename="chart.'.$imgtype.'"');
  51. // stream image
  52. $function = 'image'.$imgtype;
  53. if ($imgtype == 'gif') {
  54.   $function($img);
  55. }
  56. else {
  57.   $function($img, null, $imgquality);
  58. }
  59. // destroy
  60. imagedestroy($img);
  61. ?>