2010-07-11 53 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圖像,看看有沒有什麼幫助,爲我工作。