1

我用 CodeIgniter 为我的个人网站编写了一个系统,并使用 GD2 库根据我的需要来处理图像。它在本地主机和我用于测试的免费主机上工作得很好。但是现在我使用的是来自不同提供商的付费主机,它不适用于 jpg 文件。它显示损坏的图像图标。但适用于 PNG 文件。我尝试显示操作错误,但没有显示任何内容。

这是我的媒体控制器,它处理图像;

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Media extends CI_Controller
{

function sandbox($imageName , $width)
  {

      if(!is_file('uploads/sandbox/'.$width.'-'.$imageName)) {
         $config['image_library'] = 'gd2';
         $config['source_image'] = 'uploads/original/'.$imageName;
         $config['new_image'] = 'uploads/sandbox/'.$width.'-'.$imageName;
         $config['dynamic_output'] = FALSE;
         $config['maintain_ratio'] = TRUE;
         $config['master_dim'] = 'width';
         $config['width'] = $width;
         $config['height'] = $width;

         $this->image_lib->initialize($config);
         return $this->image_lib->resize();
    }    else {
        return true;
    }

  }

  public function covers($imageName)
  {

     if($this->sandbox($imageName, 920)) {

         $config['image_library'] = 'gd2';
         $config['source_image'] = 'uploads/sandbox/'.'920-'.$imageName;
         $config['dynamic_output'] = TRUE;
         $config['maintain_ratio'] = FALSE;
         $config['width'] = 920;
         $config['height'] = 450;

         $this->image_lib->initialize($config);
         $this->image_lib->crop();

     }


  }

  public function images($imageName)
  {

     if($this->sandbox($imageName, 440)) {

         $config['image_library'] = 'gd2';
         $config['source_image'] = 'uploads/sandbox/'.'440-'.$imageName;
         $config['dynamic_output'] = TRUE;
         $config['maintain_ratio'] = FALSE;
         $config['width'] = 440;
         $config['height'] = 300;

         $this->image_lib->initialize($config);
         if(!$this->image_lib->crop()){
            echo $this->image_lib->display_errors();
         }

     }

  }

  public function facebook($imageName)
  {

     $config['image_library'] = 'gd2';
     $config['source_image'] = 'uploads/original/'.$imageName;
     $config['dynamic_output'] = TRUE;
     $config['maintain_ratio'] = FALSE;
     $config['width'] = 256;
     $config['height'] = 256;

     $this->image_lib->initialize($config);
     echo $this->image_lib->resize();

  }

}
4

1 回答 1

0

Jpeg must be enabled when you install GD2; http://php.net/manual/en/image.installation.php

于 2014-02-25T11:56:05.220 回答