2010-05-17 96 views
0
 if ($img = @imagecreatefromjpeg('./images/upload/13/1.JPG')) { 

     imagejpeg($img, $path, 100); 
      imagedestroy($img); 

    } else { 

     die ("image was not created or saved"); 

    } 

我收到消息:這個PHP GD代碼有問題嗎?

警告:imagejpeg():8是不是在C有效的圖片資源:\ XAMPP \ htdocs中\ invivid \庫\上線photograph_classes.php 276

警告:imagedestroy():8不是有效的圖像資源在C:\ xampp \ htdocs \ invivid \ libraries \ photograph_classes.php在線277

圖像是最初創建的,我們從if語句,但爲什麼imagejpeg或imagedestroy不能正常工作?

解決方案:好的,我覺得它有什麼做用不正確的$ PATH變量,現在看來是工作的罰款。

+0

奇怪,但嘗試首先去除@。 – 2010-05-17 18:33:14

+0

仍然得到同樣的錯誤 – ThinkingInBits 2010-05-17 18:34:06

+2

什麼是錯的與你的GD PHP代碼! – 2010-05-17 18:43:39

回答

0

我從來沒有使用過這樣的(不創建一個新的形象,做一些操作,等等),但似乎該手冊是一個有點含糊:imagecreatefromjpeg返回圖像資源標識符imagejpeg需要一個圖像資源,由圖像創建功能之一返回。它看起來一樣,但也許它們不是。

+0

imagecreatefromjpeg()** **讀取JPEG文件到內存中(作爲gdimage資源)和imagejpeg()** **寫入一個JPEG binairy(從gdimage) – 2010-05-17 21:28:34

+0

That's我的想法,雖然手動這難道不是清楚(圖像資源VS圖像資源標識符)。沒有看到其他的錯誤,雖然... – jeroen 2010-05-17 21:34:18

+0

選擇此作爲答案讓這篇文章的方式 – ThinkingInBits 2010-05-22 07:51:11

0

documentation page上imagecreatefromjpeg(雖然這似乎格外令人難以置信的):

 
imagecreatefromJPEG is for .JPEG and .JPG ending 
& 
imagecreatefromjpeg is for .jpeg and .jpg ending. 

That function is case sensitive. 

另一個值得,值得一試,可以設置

ini_set('gd.jpeg_ignore_warning', 1); 

,看看是否能解決了損壞的圖像推測的問題。

+0

即使功能是區分大小寫的(這的確是在** **評論提到),請告訴我一個jpg和.JPG文件之間的區別?!? – 2010-05-17 21:22:09

+0

@Bob範格:是的,這就是爲什麼我添加了「格外令人難以置信」的一部分;-) – ChristopheD 2010-05-17 21:25:20