溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php GD庫的使用

發(fā)布時間:2020-06-09 08:38:18 來源:網(wǎng)絡(luò) 閱讀:570 作者:q3428532 欄目:web開發(fā)
<?php

/**
 * 調(diào)整圖片大小
 * $path圖片的寬度大于$width則等比縮放
 * $path圖片的高度大于$height切成多張圖片
 * @param $path 圖片地址
 * @param $width integer|string  圖片寬度
 * @param @height integer|string 圖片高度
 */
function imgResize($path, $width, $height) {
  // 存放生成的圖片路徑
  $imgPaths = array();
  // 獲取圖片寬度/高度/類型
  list($srcW, $srcH, $type) = getp_w_picpathsize($path);
  $type -= 1;

  // 創(chuàng)建源圖像
  $p_w_picpathcreatefromFuns = array('p_w_picpathcreatefromgif', 'p_w_picpathcreatefromjpeg', 'p_w_picpathcreatefrompng');
  $src = $p_w_picpathcreatefromFuns[$type]($path);
  // 圖片的寬度大于$width則等比縮放
  if( $srcW > $width ) {
    $dstHeight = $srcH * ($width / $srcW);
    // 新建一個真彩***像
    $dst = p_w_picpathcreatetruecolor( $width, $dstHeight );
    p_w_picpathcopyresampled($dst, $src,  0, 0, 0, 0, $width, $dstHeight, $srcW, $srcH);
    $src = $dst; 
    // 更新原圖的寬度和高度
    $srcW = $width;
    $srcH = $dstHeight;
  }
  else {
    // 沒有調(diào)整寬度
    $width = $srcW;
  }
  
  // 圖片的高度大于$height切成多張圖片
  if( $srcH > $height ) {
    // 切割的高度位置
    $srcY = 0;
    do {
      $dstHeight = ($srcY + $height > $srcH) ? ($srcH - $srcY) : ($height);
      $dst = p_w_picpathcreatetruecolor( $width, $dstHeight );
      p_w_picpathcopyresampled($dst, $src,  0, 0, 0, $srcY, $width, $dstHeight, $width, $dstHeight);
      $filePath = './img/' . md5(microtime(true)) . '.jpg';
      $imgPaths[] = $filePath;
      ImageJpeg($dst, $filePath);
      is_resource($dst) and p_w_picpathdestroy($dst);
      $srcY += $dstHeight;
    }while($srcY < $srcH);
  }
  else {
    // 如果高度符合 則將調(diào)整了原圖(也有可能是調(diào)整了寬度之后的)保存為文件
    $filePath = './img/' . md5(microtime(true)) . '.jpg';
    $imgPaths[] = $filePath;
    ImageJpeg($src, $filePath);
  }

  // 釋放內(nèi)存
  isset($src) and is_resource($src) and p_w_picpathdestroy($src);
  isset($dst) and is_resource($dst) and p_w_picpathdestroy($dst);

  return $imgPaths;
}

/**
 * 調(diào)整圖片清晰度
 * @param string $path  圖片路徑
 * @param string $quality 清晰度
 * @return string 新的圖片路徑
 */
function reQuality( $path, $quality ) {
    $p_w_picpath_type = p_w_picpath_type_to_extension(exif_p_w_picpathtype($path), false);
    $fun = "p_w_picpathcreatefrom{$p_w_picpath_type}";
    $src = $fun($path);
    $newPath = generateUniqueFilePath('./img/');
    ImageJpeg($src, $newPath, $quality);
    return $newPath;
}

/**
 * 生成唯一的文件路徑
 * @param $basePath string 文件夾路徑
 * @param $suffix string
 * @return string 文件路徑
 */
function generateUniqueFilePath($basePath, $suffix='.jpg') {
  $filePath = $basePath . md5(microtime(true)) . $suffix;
  return $filePath;
}

header('Content-Type:p_w_picpath/png');

$path = './img/jjj.jpg';
$imgPaths = imgResize($path, 10000, 10000);
// reQuality($path, 1);


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI