

一口一...我用了CI的Image類別,但是上傳後的圖片都失去原始的顏色了!後來記得之前有一本「專業PHP5程式設計指南」有提供縮圖章節,索性就重啃了一遍,其中有一段提到:
imagecreatetruecolor函式是被用來產生出一個準備要放置縮圖的空白圖(以PHP變數的型態存在於記憶體當中),注意涵式名稱所暗示的,這個函數將會產生出一個「真實色彩」(true color) (24位元)的圖,而不會像imagecreate那樣,只能取得「以調色盤為基礎」(palette-based) (8位元)的圖。
接著續繼趴CI的User Guide(中)(英)提到Image類別支援使用GD, GD2, ImageMagick, NetPBM的圖型函式庫。我目前設定是GD,所以我猜想會不會GD是舊函式庫,所以沒有imagecreatetruecolor()?但是工作上的同事告訴我他在GD圖型庫的環境中,能正常使用imagecreatetruecolor()
一皿一||||見鬼了!!,害我又不得開啟system\libraries\Image_lib.php進行人工趴碼了@_@,後來發現在第504行類別判斷竟然是這樣的
if ($this->image_library == 'gd2' AND function_exists('imagecreatetruecolor')) { $create = 'imagecreatetruecolor'; $copy = 'imagecopyresampled'; } else { $create = 'imagecreate'; $copy = 'imagecopyresized'; }
囧rz..果然,他把GD擋掉了,他似乎也認為只有GD2才有資格用imagecreatetruecolor(),所以我只好把他修正為如下
if (function_exists('imagecreatetruecolor')) { $create = 'imagecreatetruecolor'; $copy = 'imagecopyresampled'; } else { $create = 'imagecreate'; $copy = 'imagecopyresized'; }
奇怪,明明多判斷是不是GD2是多餘的呀XD,檢查有沒有imagecreatetruecolor()才是直覺的判斷吧!
全站熱搜