2010-07-11 43 views
0

警告:我对CodeIgniter没有太多经验,我正在更新最初由其他开发人员创建的网站。PHP GD在左上角创建一个黑色像素的缩略图

由于某些原因,CodeIgniter图像类正在左上角用黑色像素创建缩略图。这里有一个例子:

alt text http://jnjnjn.com/images/codeigniter_bad_thumb.jpg

这似乎只在生产中发生的(这个网站正在举办的超级跛脚共享主机上)。缩略图在我的OS X开发机器和Slicehost上的Ubuntu机器上创建得很好。

的代码是相当样板,从我可以告诉图像库没有一大堆的选项搞砸了。

的选项是这样的:

$this->Image_Resize['image_library'] = 'gd2'; 
$this->Image_Resize['thumb_marker'] = 'thumb_'; 
$this->Image_Resize['create_thumb'] = TRUE; 
$this->Image_Resize['maintain_ratio'] = TRUE; 
$this->Image_Resize['width'] = 200; 
$this->Image_Resize['height'] = 200; 

,然后将图像处理是这样的:

$this->Image_Resize['source_image'] = 'images/news/'.$image['file_name']; 
$this->image_lib->initialize($this->Image_Resize); 
$this->image_lib->resize(); 

有没有人遇到这个问题?谷歌& SO搜索没有让我到任何地方。这些像素让我疯狂。

更新:正如我害怕,这与CodeIgniter没有任何关系。有些东西对主机的GD库很诡异,他们不支持其他任何东西。奇怪的是,我找不到有这个问题的世界上的任何其他人。

无论如何,我的建议是永远不会使用Doteasy。他们是一场噩梦。

+0

对不起,问'愚蠢'的问题,但是,原始图像?或者,这是一个可能会受到你的CSS影响的截图? – 2010-07-11 15:21:01

+0

这是实际的图像,如果你在图像编辑器中打开它的第一个像素是#000000 – joeynelson 2010-07-11 15:26:51

回答

1

如果它是导致它的主机,也许是他们的图像库有问题。 codeigniter Image Manipulation类实际上只是在这个级别之上抽象出来的,所以你实际上可以选择使用哪个图像库。找出您的主机上有哪些可用的产品,或者尝试不同的产品,看看结果是否相同。为[ 'image_library']可能的选项是:

  1. GD
  2. GD2
  3. ImageMagick的
  4. 的NetPBM

Image Manipulation Class - Codeigniter Documentation

+0

是的,它绝对看起来像GD的错。我使用了一个简单的调整大小的函数,它具有完全相同的问题。废话。 – joeynelson 2010-07-11 17:13:39

-2
.$image['file_name']; 
^---- see period 
1

我跑进同样的问题,并经过一些挖掘这里是什么我想出了我的情况。我想我会和其他人一起分享,那里有一些有用的东西。请记住,这是直接的PHP没有代码点火器,但这是你做谷歌搜索时的第一反应之一。

这似乎只与24位透明PNG,调整大小,然后使用imageconvolution功能削尖发生时,对我来说。只要我注释掉应用卷积的代码部分,黑色像素就会消失。

1

我有同样的事情,似乎只能用PNG32格式发生 - 尝试在出口或PNG24 PNG8图像,看看有没有什么帮助,为我工作。