php產生圖片縮圖功能的方法

來源:互聯網
上載者:User
這篇文章主要介紹了php產生圖片縮圖功能,結合完整執行個體形式分析了php縮圖產生的詳細步驟與相關實現技巧,需要的朋友可以參考下

具體如下:

完整代碼如下(為方便閱讀,代碼使用http://tools.jb51.net/code/phpformat進行了格式化處理):

<?php/* * Created on 2011-3-18 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates*//*建構函式-產生縮圖+浮水印,參數說明:$srcFile-圖片檔案名稱,$dstFile-另存檔案名稱,$markwords-浮水印文字,$markimage-浮水印圖片,$dstW-圖片儲存寬度,$dstH-圖片儲存高度,$rate-圖片儲存品質*/makethumb("1.jpg", "aa/b.jpg", "50", "50");function makethumb($srcFile, $dstFile, $dstW, $dstH, $rate = 100, $markwords = null, $markimage = null) {  $data = GetImageSize($srcFile);  switch ($data[2]) {    case 1:      $im = @ImageCreateFromGIF($srcFile);    break;    case 2:      $im = @ImageCreateFromJPEG($srcFile);    break;    case 3:      $im = @ImageCreateFromPNG($srcFile);    break;  }  if (!$im) return False;  $srcW = ImageSX($im);  $srcH = ImageSY($im);  $dstX = 0;  $dstY = 0;  if ($srcW * $dstH > $srcH * $dstW) {    $fdstH = round($srcH * $dstW / $srcW);    $dstY = floor(($dstH - $fdstH) / 2);    $fdstW = $dstW;  } else {    $fdstW = round($srcW * $dstH / $srcH);    $dstX = floor(($dstW - $fdstW) / 2);    $fdstH = $dstH;  }  $ni = ImageCreateTrueColor($dstW, $dstH);  $dstX = ($dstX < 0) ? 0 : $dstX;  $dstY = ($dstX < 0) ? 0 : $dstY;  $dstX = ($dstX > ($dstW / 2)) ? floor($dstW / 2) : $dstX;  $dstY = ($dstY > ($dstH / 2)) ? floor($dstH / s) : $dstY;  $white = ImageColorAllocate($ni, 255, 255, 255);  $black = ImageColorAllocate($ni, 0, 0, 0);  imagefilledrectangle($ni, 0, 0, $dstW, $dstH, $white); // 填充背景色  ImageCopyResized($ni, $im, $dstX, $dstY, 0, 0, $fdstW, $fdstH, $srcW, $srcH);  if ($markwords != null) {    $markwords = iconv("gb2312", "UTF-8", $markwords);    //轉換文字編碼    ImageTTFText($ni, 20, 30, 450, 560, $black, "simhei.ttf", $markwords); //寫入文字浮水印    //參數依次為,文字大小|偏轉度|橫座標|縱座標|文字顏色|文字類型|文字內容      } elseif ($markimage != null) {    $wimage_data = GetImageSize($markimage);    switch ($wimage_data[2]) {      case 1:        $wimage = @ImageCreateFromGIF($markimage);      break;      case 2:        $wimage = @ImageCreateFromJPEG($markimage);      break;      case 3:        $wimage = @ImageCreateFromPNG($markimage);      break;    }    imagecopy($ni, $wimage, 500, 560, 0, 0, 88, 31); //寫入圖片浮水印,浮水印圖片大小預設為88*31    imagedestroy($wimage);  }  ImageJpeg($ni, $dstFile, $rate);  ImageJpeg($ni, $srcFile, $rate);  imagedestroy($im);  imagedestroy($ni);}?>

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.