作者whitebase (finn)
看板PHP
標題[請益] 截圖,某個區域
時間Wed Oct 10 13:36:33 2012
利用imagecopyresampled();達到截取一張完整圖片的某個區域,
來源:
http://blog.longwin.com.tw/2007/11/php_snap_image_block_2007/
comment-page-1/
#comment-49705
程式碼如下:
<?
header("Content-type: image/jpeg");
$filename = 'book_rabbit_rule.jpg';
/* 讀取圖檔 */
$im = imagecreatefromjpeg($filename);
/* 圖片要截多少, 長/寬 */
$new_img_width = 120;
$new_img_height = 42;
/* 先建立一個 新的空白圖檔 */
$newim = imagecreate($new_img_width, $new_img_height);
// 輸出圖要從哪邊開始x, y , 原始圖要從哪邊開始 x, y , 要畫多大 x, y(resize) ,
要抓多大 x, y
imagecopyresampled($newim, $im, 0, 0, 7, 174, 120, 42, $new_img_width,
$new_img_height);
/* 放大 成 500 x 500 的圖 */
// imagecopyresampled($newim, $im, 0, 0, 100, 30, 500, 500, $new_img_width,
$new_img_height);
/* 將圖印出來 */
imagejpeg($newim);
/* 資源回收 */
imagedestroy($newim);
imagedestroy($im);
?>
但跑出來網頁顯示:"無法顯是錯誤的的圖片",在想是不是權限問題,
但改成777後還是一樣,是其中有什麼其他問題?
圖片來源網址有改,不是來源問題,檔案是jpg檔。
或是有其比較好的方式可以替代嗎,這些函式多跑幾張圖,
跑完不知道會不會很吃時間orz..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.239.88
1F:推 bibo9901:先把header那行拿掉 看看是不是有錯誤訊息 10/10 14:09
2F:→ whitebase:拿掉後沒有,但變一推亂碼.. 10/10 16:01
3F:→ MOONRAKER:降低load可用exec()跑convert,他是imagemagick的組件。 10/10 18:10
4F:→ whitebase:我是掛免費伺服器,應該沒辦法多裝軟體 10/10 19:16
5F:→ whitebase:還是imagecopyresampled();等語法需要其他東西支援? 10/10 19:17
6F:→ MOONRAKER:它是函數,不是語法。它是php內部完全支援的。if while 10/10 22:28
7F:→ MOONRAKER:switch case 這些還勉強算「語法」。 10/10 22:28
8F:→ whitebase:恩不好意思..函式,常混再一起講。好像php4以上完全支援 10/11 00:28
9F:→ whitebase:那就不知道會什麼沒辦法跑了..orz 10/11 00:29
10F:→ MOONRAKER:debug就是換imagepng()或imagegif()看看。合理推測是 10/11 01:33
11F:→ MOONRAKER:輸出圖檔前可能有輸出什麼東西,造成圖檔檔頭無法辨認。 10/11 01:33
12F:→ whitebase:可能不是..,把imagecopyresampled和imagejpeg蓋掉 10/11 10:20
13F:→ whitebase:還是沒辦法運作,不管少哪一行都一樣,無法顯是錯誤圖片 10/11 10:21