PHP修改圖片像素大小

以下爲修改圖片爲指定像素方法及使用示例:

/**
 * @Desc:
 * @DateTime: xxx
 * @param $filename 文件名(所在路徑)
 * @param $xmax 修改後最大寬度
 * @param $ymax 修改後最大高度
 * @param $ext 文件後綴
 * @return resource
 */
function resize_image($filename, $newx, $newy, $ext)
{
    //根據後綴,由文件或 URL 創建一個新圖象(內置函數)
    if($ext == "jpg" || $ext == "jpeg")
        $im = imagecreatefromjpeg($filename);
    elseif($ext == "png")
        $im = imagecreatefrompng($filename);
    elseif($ext == "gif")
        $im = imagecreatefromgif($filename);

    //獲取當前待修改圖片像素(內置函數)
    $x = imagesx($im);
    $y = imagesy($im);

    //新建一個真彩色圖像(內置函數)
    $im2 = imagecreatetruecolor($newx, $newy);
    
    //重採樣拷貝部分圖像並調整大小(內置函數)
    imagecopyresampled($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);
    return $im2;
}


//使用示例:
$tmp = './img/test.jpg';//圖片文件所在路徑,相對路徑和絕對路徑都行
$fileinfo = pathinfo($tmp);
$ext = $fileinfo['extension'];
$image = resize_image($tmp, 1242, 2208, $ext);

if($ext == "jpg" || $ext == "jpeg")
    imagejpeg($image, $tmp);
elseif($ext == "png")
    imagepng($image, $tmp);
elseif($ext == "gif")
    imagegif($image, $tmp);

腳本執行後,將修改後的圖片替換原有圖片,實現邏輯可根據業務進行合理修改即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章