我希望能夠修剪圖像,其中許多圖像垂直很長...從2000到4000px的任何地方,總是在800.因此只獲取圖像的頂部。然後我想用PHP輸出這個頁面/報告,而不用保存所產生的修剪圖像。修剪臨時使用的圖像在PHP中
是$ imagepng->修剪最好的方法來做到這一點?
我希望能夠修剪圖像,其中許多圖像垂直很長...從2000到4000px的任何地方,總是在800.因此只獲取圖像的頂部。然後我想用PHP輸出這個頁面/報告,而不用保存所產生的修剪圖像。修剪臨時使用的圖像在PHP中
是$ imagepng->修剪最好的方法來做到這一點?
你會做這樣的事情:
$srcName = 'source.png';
$info = getimageinfo($srcName);
$src = imagecreatefrompng($srcName);
// Create a new image up to 800px tall
$dest = imagecreate($info[0], min($info[1], 800));
imagecopy($dest, $src, 0, 0, 0, 0, $info[0], min($info[1], 800));
// Output
header('Content-type: image/png');
imagepng($dest);
GD是什麼imagepng使用,它是在PHP做圖像處理的最廣泛支持的方式,所以這是一個非常安全的賭注,特別是如果你是希望將代碼部署在您不能控制的服務器上。
另一種方法是查看ImageMagick,但我發現GD在大多數情況下速度稍快。