我用 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();
}
}