/[cvs]/nfo/php/libs/com.newsblob.phphtmllib/test/thumbnail.php
ViewVC logotype

Contents of /nfo/php/libs/com.newsblob.phphtmllib/test/thumbnail.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (vendor branch)
Thu Jan 30 03:29:40 2003 UTC (21 years, 5 months ago) by jonen
Branch: MAIN, no_vendor_tag
CVS Tags: v2-1-3, no_release_tag, HEAD
Changes since 1.1: +0 -0 lines

1 <?php
2 // Image thumbnail0r (with an "0" :])
3 // mike[@]filespanker.com
4 //
5 // PARAMETERS:
6 //
7 // img:
8 // The image file as relative to THIS script.
9 // h:
10 // The thumbnail's height. Default: 30
11 // w:
12 // The thumbnail's width. Default: 30
13 // mode:
14 // 1 = stretch: The image is resized to height and width
15
16 // 0[default] = proportioned: The image is shrunken, but keeps proportions
17 // type:
18 // [optional]
19 // jpg = JPEG
20 // gif = GIF
21 // png = PNG
22 // If this is not set, it is determined by its file extension.
23 //
24 // This script's functions rely completely on your gd lib version.
25 //
26 // So, if I recall correctly:
27 // gd v1.5 or lower : GIF
28 // gd v1.6 or higher: PNG
29 // gd v1.8 or higher: PNG and JPEG
30 //
31 // So, all three image types should never work on the same gd lib :[
32 // You can thank Unisys for that.
33 //
34 // Before mailing me, please actually look at the code.
35 //Theres not much I could have really screwed up, and its probably an
36 // issue with your gd library. Try up/downgrading it.
37
38 // Configuration:
39
40
41 //// CODE
42
43 if( !isset($w) ) {
44 $w = 50;
45 }
46
47 if( !isset($h) ) {
48 $h = 50;
49 }
50
51
52 SetType($mode, 'integer');
53 SetType($w, 'integer');
54 SetType($h, 'integer');
55 SetType($img, 'string' );
56
57 function percent($p, $w) {
58 return(real)(100 * ($p / $w));
59 }
60
61 function unpercent($percent, $whole) {
62 return(real)(($percent * $whole) / 100);
63 }
64
65 // Initialization
66
67 // Make sure the file exists...
68 if( !file_exists($img) ) {
69 echo "Error: could not find file: $img.";
70 exit();
71 }
72
73 // If the user defined a type to use.
74 if( !isset($type) ) {
75 $ext = explode('.', $img);
76 $ext = $ext[count($ext)-1];
77 switch( strtolower($ext) ) {
78 case 'jpeg' :
79 $type = 'jpg';
80 break;
81 default :
82 $type = $ext;
83 break;
84 }
85 }
86
87 // Create the image...
88 switch( strtolower($type) ) {
89 case 'jpg':
90 $tmp = imagecreatefromjpeg($img);
91 break;
92
93 case 'gif':
94 $tmp = @imagecreatefromgif($img);
95 break;
96
97 case 'png':
98 $tmp = @imagecreatefrompng($img);
99 break;
100
101 default:
102 echo 'Error: Unrecognized image format.';
103 exit();
104 break;
105 }
106
107 if( $tmp ) {
108 // Resize it
109
110 $ow = imagesx ($tmp); // Original image width
111 $oh = imagesy ($tmp); // Original image height
112
113 if( $mode ) {
114 // Just smash it up to fit the dimensions
115 $nw = $w;
116 $nh = $h;
117 } else {
118 // Make it proportional.
119 if( $ow > $oh ) {
120 $nw = $w;
121 $nh = unpercent(percent($nw, $ow), $oh);
122 } else if( $oh > $ow ) {
123 $nh = $h;
124 $nw = unpercent(percent($nh, $oh), $ow);
125 } else {
126 $nh = $h;
127 $oh = $w;
128 }
129 }
130
131 $out = imagecreate($nw, $nh);
132 imagecopyresized($out, $tmp, 0, 0, 0, 0, $nw, $nh, $ow, $oh);
133 imagedestroy($tmp);
134 } else {
135 echo 'Could not create image resource.';
136 exit;
137 }
138
139
140 if( $out ) {
141 switch( strtolower($type) ) {
142 case 'jpg':
143 header('Content-type: image/jpeg');
144 imagejpeg($out);
145 break;
146
147 case 'gif':
148 header('Content-type: image/gif');
149 imagegif($out);
150 break;
151
152 case 'png':
153 header('Content-type: image/png');
154 imagepng($out);
155 break;
156 }
157 imagedestroy($out);
158 } else {
159 echo 'ERROR: Could not create resized image.';
160 }
161 ?>
162

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed