-
Notifications
You must be signed in to change notification settings - Fork 2
/
utils_graphic.php
55 lines (49 loc) · 1.51 KB
/
utils_graphic.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
// $Header: /cvsroot/html2ps/utils_graphic.php,v 1.9 2007/01/24 18:56:10 Konstantin Exp $
function do_image_open($filename, &$type) {
// Gracefully process missing GD extension
if (!extension_loaded('gd')) {
return null;
};
// Disable interlacing for the generated images, as we do not need progressive images
// if PDF files (futhermore, FPDF does not support such images)
$image = do_image_open_wrapped($filename, $type);
if (!is_resource($image)) { return null; };
if (!is_null($image)) {
imageinterlace($image, 0);
};
return $image;
}
function do_image_open_wrapped($filename, &$type) {
// FIXME: it will definitely cause problems;
global $g_config;
if (!$g_config['renderimages']) {
return null;
};
// get the information about the image
if (!$data = @getimagesize($filename)) { return null; };
switch ($data[2]) {
case 1: // GIF
$type = 'image/png';
// Handle lack of GIF support in older versions of PHP
if (function_exists('imagecreatefromgif')) {
return @imagecreatefromgif($filename);
} else {
return null;
};
case 2: // JPG
$type = 'image/jpeg';
return @imagecreatefromjpeg($filename);
case 3: // PNG
$type = 'image/png';
$image = imagecreatefrompng($filename);
// imagealphablending($image, false);
// imagesavealpha($image, true);
return $image;
case 15: // WBMP
$type = 'image/png';
return @imagecreatefromwbmp($filename);
};
return null;
};
?>