source: trunk/phpgwapi/js/htmlarea/plugins/UploadImage/popups/ImageEditor/load_image.php @ 2

Revision 2, 4.1 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?
2/***********************************************************************
3** Title.........:  Online Manipulation of Images
4** Version.......:  1.0
5** Author........:  Xiang Wei ZHUO <wei@zhuo.org>
6** Filename......:  load_image.php
7** Last changed..:  30 Aug 2003
8** Notes.........:  Configuration in config.inc.php
9
10                   Uses the GD, ImageMagic or NetPBM to manipulate
11                   images online. ImageMagic is preferred as it provides
12                   the best rotation algorithm. Below is a brief comparsion
13                   of the image manipulation packages. Personal preference
14                   is ImageMagick.
15
16                              |     GD     | NetPBM | ImageMagick
17                   ------------------------------------------------
18                   GIF             NO(1)     YES        YES
19                   JPEG            YES(2)    YES        YES
20                   PNG             YES       YES        YES
21                   Cropping        Good      Good       Good
22                   Scaling         Fair      Good       Very Good
23                   Rotation        Poor      Fair       Very Good
24                   Flip            Good      Poor       Good
25                   
26
27                   (1) GIF is support in old GD say version 1.61 and below
28                   (2) Full colour JPEG is not supported in GD versions
29                       less than 2.01 with PHP.
30
31***********************************************************************/
32
33//***************************************************************************
34
35include '../ImageManager/config.inc.php';
36
37// set this to whatever subdir you make
38$path = $BASE_ROOT.'/';
39//$path = $BASE_DIR.'/';
40
41//***************************************************************************
42
43//echo $path;
44
45require_once 'Transform.php';
46
47$action = '';
48
49//get the image file
50$img_file = $_GET['img'];
51
52if($img_file != '') {
53    $path_info = pathinfo(urldecode($img_file));
54    $path = $path_info['dirname']."/";
55    $img_file = $path_info['basename'];
56}
57//var_dump($path);
58//var_dump($path_info);
59
60//get the parameters
61if (isset($_GET['action']))
62    $action = $_GET['action'];
63if (isset($_GET['params']))
64    $params = $_GET['params'];
65if(isset($_GET['file'])) {
66    $save_file = urldecode($_GET['file']);
67}
68
69//manipulate the image if the parameters are valid
70if(isset($params)) {
71    $values =  explode(',',$params,4);
72    if(count($values)>0) {
73        $file = manipulate($img_file, $action, $values);
74    }
75}
76
77//manipulate the images
78function manipulate($img_file, $action, $values)
79{
80    global $path, $save_file, $BASE_DIR,$BASE_ROOT;
81
82        $img_location=$BASE_DIR.$BASE_ROOT.'/';
83    //Load the Image Manipulation Driver
84    $img = Image_Transform::factory(IMAGE_CLASS);
85
86       
87        $img->load($img_location.$img_file);
88    switch ($action) {
89        case 'crop':
90            $img->crop(intval($values[0]),intval($values[1]),intval($values[2]),intval($values[3]));
91        break;
92    case 'scale':
93            $img->resize(intval($values[0]),intval($values[1]));
94        break;
95    case 'rotate':
96            $img->rotate(floatval($values[0]));
97        break;
98    case 'flip':
99        if ($values[0] == 'hoz')
100            $img->flip(true);
101        else if($values[0] == 'ver')
102            $img->flip(false);
103        break;
104    case 'save':
105
106        if (isset($save_file))
107        {
108            $quality = intval($values[1]);
109            if($quality <0)
110                $quality = 85;
111            $img->save($img_location.$save_file, $values[0], $quality);
112        }
113        break;
114    }
115
116    //get the unique file name
117    $filename = $img->createUnique($img_location);
118    //save the manipulated image
119    $img->save($img_location.$filename);
120    $img->free();
121
122    $imagesize = @getimagesize($filename);
123    return array($filename, $imagesize[3]);
124}
125
126
127//well, let say the image was not manipulated, or no action parameter was given
128//we will get the image dimension anyway.
129$image = $img_file;
130$size = @getimagesize($image);
131$dimensions = $size[3];
132
133if (isset($file) && is_array($file))
134{
135    $image = $file[0];
136    $dimensions = $file[1];
137}
138
139//now display the image with
140include 'man_image.html';
141?>
Note: See TracBrowser for help on using the repository browser.