Release plat/al core v1.1.13
[platal.git] / classes / plimage.php
CommitLineData
6f58e061
FB
1<?php
2/***************************************************************************
e92ecb8c 3 * Copyright (C) 2003-2011 Polytechnique.org *
6f58e061
FB
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22class PlImage {
d9520867
R
23 protected $mime = null;
24 protected $x = null;
25 protected $y = null;
2055d886 26 protected $ts = null;
6f58e061 27
d9520867
R
28 protected $data = null;
29 protected $file = null;
6f58e061 30
b1d30e03 31 protected function __construct()
6f58e061
FB
32 {
33 }
34
35 public function send()
36 {
2055d886
FB
37 if (!is_null($this->ts)) {
38 header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $this->ts) . ' GMT');
39 }
6f58e061
FB
40 pl_cached_dynamic_content_headers($this->mime);
41 if (empty($this->data)) {
42 readfile($this->file);
43 } else {
44 echo $this->data;
45 }
46 exit;
47 }
48
49 public function path()
50 {
51 if (empty($this->data)) {
9e43a952 52 return $this->file;
6f58e061
FB
53 } else {
54 $name = md5($this->data);
55 $GLOBALS['img' . $name] = $this->data;
56 return 'var://img' . $name;
57 }
58 }
59
60 public function width()
61 {
62 return $this->x;
63 }
64
65 public function height()
66 {
67 return $this->y;
68 }
69
70 public function mimeType()
71 {
72 return $this->mime;
73 }
74
2055d886 75 public static function fromData($data, $mime, $x = null, $y = null, $ts = null)
6f58e061
FB
76 {
77 $image = new PlImage();
78 $image->data = $data;
79 $image->mime = $mime;
80 $image->x = $x;
81 $image->y = $y;
2055d886 82 $image->ts = $ts;
6f58e061
FB
83 return $image;
84 }
85
2055d886 86 public static function fromFile($path, $mime, $x = null, $y = null, $ts = null)
6f58e061
FB
87 {
88 $image = new PlImage();
89 $image->file = $path;
90 $image->mime = $mime;
91 $image->x = $x;
92 $image->y = $y;
2055d886 93 $image->ts = $ts;
6f58e061
FB
94 return $image;
95 }
96}
97
fa7ffd66 98// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
6f58e061 99?>