source: branches/MootoolsFileManager-Update/plugins/ImageManager/resizer.php @ 1319

Last change on this file since 1319 was 1210, checked in by gogo, 10 years ago

Ticket #1465

Add an option resize_files to both ExtendedFileManager? and ImageManager?, defaults true, false turns off the automatic image resizing.

  • Property svn:keywords set to LastChangedDate LastChangedRevision LastChangedBy HeadURL Id
File size: 2.1 KB
Line 
1<?php
2header('Content-Type: text/javascript; charset=UTF-8');
3
4/**
5 * Resize images to a given size, and saving in a new file.
6 * resize.php?img=/relative/path/to/image.jpg&width=<pixels>&height=<pixels>[&to=/relative/path/to/newimage.jpg]
7 * relative to the base_dir given in config.inc.php
8 * This is pretty much just thumbs.php with some mods, I'm too lazy to do it properly
9 * @author $Author:ray $
10 * @version $Id:resizer.php 922 2007-12-30 14:35:46Z ray $
11 * @package ImageManager
12 */
13
14require_once('config.inc.php');
15require_once('Classes/ImageManager.php');
16require_once('Classes/Thumbnail.php');
17
18function js_fail($message)    { echo 'alert(\'' . $message . '\'); false'; exit;   }
19function js_success($resultFile)    { echo '\'' . $resultFile . '\''; exit;   }
20
21//check for img parameter in the url
22if(!isset($_GET['img']) || !isset($_GET['width']) || !isset($_GET['height']))
23{
24  js_fail('Missing parameter.');
25}
26
27if($IMConfig['resize_files'] == FALSE)
28{
29  js_success($_GET['img']);
30}
31
32$manager = new ImageManager($IMConfig);
33
34//get the image and the full path to the image
35$image = $_GET['img'];
36$fullpath = Files::makeFile($manager->getImagesDir(),$image);
37
38//not a file, so exit
39if(!is_file($fullpath))
40{
41  js_fail("File {$fullpath} does not exist.");
42}
43
44$imgInfo = @getImageSize($fullpath);
45
46//Not an image, bail out.
47if(!is_array($imgInfo))
48{
49        js_fail("File {$fullpath} is not an image.");
50}
51
52if(!isset($_GET['to']))
53{
54  $resized    = $manager->getResizedName($fullpath,$_GET['width'],$_GET['height']);
55  $_GET['to'] = $manager->getResizedName($image,$_GET['width'],$_GET['height'], FALSE);
56}
57else
58{
59  $resized = Files::makeFile($manager->getImagesDir(),$_GET['to']);
60}
61
62// Check to see if it already exists
63if(is_file($resized))
64{
65        // And is newer
66        if(filemtime($resized) >= filemtime($fullpath))
67        {
68                js_success($_GET['to']);
69        }
70}
71
72
73
74// resize (thumbnailer will do this for us just fine)
75$thumbnailer = new Thumbnail($_GET['width'],$_GET['height']);
76$thumbnailer->proportional = FALSE;
77$thumbnailer->createThumbnail($fullpath, $resized);
78
79// did it work?
80if(is_file($resized))
81{
82        js_success($_GET['to']);
83}
84else
85{
86        js_fail("Resize Failed.");
87}
88?>
Note: See TracBrowser for help on using the repository browser.