Aleksander Machniak
2012-12-19 9ac96015f274b9451377d05001097d0bb7526a27
Better GD module functions detection, should fix "Call to undefined function imagecreatefromjpeg()" error
1 files modified
28 ■■■■■ changed files
program/lib/Roundcube/rcube_image.php 28 ●●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_image.php
@@ -128,16 +128,19 @@
        }
        // use GD extension
        $gd_types = array(IMAGETYPE_JPEG, IMAGETYPE_GIF, IMAGETYPE_PNG);
        if ($props['gd_type'] && in_array($props['gd_type'], $gd_types)) {
            if ($props['gd_type'] == IMAGETYPE_JPEG) {
        if ($props['gd_type']) {
            if ($props['gd_type'] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) {
                $image = imagecreatefromjpeg($this->image_file);
            }
            elseif($props['gd_type'] == IMAGETYPE_GIF) {
            else if($props['gd_type'] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) {
                $image = imagecreatefromgif($this->image_file);
            }
            elseif($props['gd_type'] == IMAGETYPE_PNG) {
            else if($props['gd_type'] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')) {
                $image = imagecreatefrompng($this->image_file);
            }
            else {
                // @TODO: print error to the log?
                return false;
            }
            $scale  = $size / max($props['width'], $props['height']);
@@ -216,19 +219,22 @@
        }
        // use GD extension (TIFF isn't supported)
        $props    = $this->props();
        $gd_types = array(IMAGETYPE_JPEG, IMAGETYPE_GIF, IMAGETYPE_PNG);
        $props = $this->props();
        if ($props['gd_type'] && in_array($props['gd_type'], $gd_types)) {
            if ($props['gd_type'] == IMAGETYPE_JPEG) {
        if ($props['gd_type']) {
            if ($props['gd_type'] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) {
                $image = imagecreatefromjpeg($this->image_file);
            }
            else if ($props['gd_type'] == IMAGETYPE_GIF) {
            else if ($props['gd_type'] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) {
                $image = imagecreatefromgif($this->image_file);
            }
            else if ($props['gd_type'] == IMAGETYPE_PNG) {
            else if ($props['gd_type'] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')) {
                $image = imagecreatefrompng($this->image_file);
            }
            else {
                // @TODO: print error to the log?
                return false;
            }
            if ($type == self::TYPE_JPG) {
                $result = imagejpeg($image, $filename, 75);