ホームページ  >  記事  >  バックエンド開発  >  PHP画像処理クラス(サムネイル生成、ウォーターマーク追加、画像情報取得)_PHPチュートリアル

PHP画像処理クラス(サムネイル生成、ウォーターマーク追加、画像情報取得)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:45:38848ブラウズ

phpチュートリアル画像処理クラス(サムネイルの生成、透かしの追加、画像情報の取得)
この記事では、画像のサムネイルを生成したり、画像に透かしを追加したり、画像情報を取得したりすることができる画像処理クラスを紹介します*/

クラスイメージ
{
パブリック $info=array();

関数__construct()
{
!extension_loaded('gd') && exit("www.bKjia.c0m プロンプト: サーバー環境は gd ライブラリをサポートしていません");
true を返します;
}

関数image()
{
$this->__construct();
}

関数thumb($image,$thumb_width=300,$thumb_height=225)
{
$info=$this->info($image);
$scale=min(1,min($thumb_width/$info['width'],$thumb_height/$info['height'])); //比例的に拡大縮小します
$thumb_width=intval($info['width']*$scale);
$thumb_height=intval($info['height']*$scale);
$createfunc='imagecreatefrom'.($info['type']=='jpg'?'jpeg':$info['type']);
$im=$createfunc($image);
$thumb_im=$info['type']!='gif' && function_exists('imagecreatetruecolor')?imagecreatetruecolor($thumb_width,$thumb_height):imagecreate($thumb_width,$thumb_height);
imagecopyresampled($thumb_im,$im,0,0,0,0,$thumb_width,$thumb_height,$info['width'],$info['height']);
if($info['type']=='gif' || $info['type']=='png')
{
$bgcolor=imagecolorallocate($thumb_im,0,255,0);
Imagecolortransparent($thumb_im,$bgcolor);
}
$imagefunc='image'.($info['type']=='jpg'?'jpeg':$info['type']);
$thumbname='thumb_'.$info['name'].'.'.$info['type'];
$imagefunc($thumb_im,$info['path'].$thumbname);
imagedestroy($im);
imagedestroy($thumb_im);
$info['path'].$thumbname を返します
}

関数ウォーターマーク($image,$pos=9,$watermarkimg='images/watermark.gif',$pct=65,$text='',$w_font=5,$w_color='#ff0000')
 {
  $imageinfo=$this->info($image);
  $source_w=$imageinfo['width'];
  $source_h=$imageinfo['高さ'];
  $imagecreatefunc='imagecreatefrom'.($imageinfo['type']=='jpg'?'jpeg':$imageinfo['type']);
  $im=$imagecreatefunc($image);
  if(!empty($watermarkimg) && file_exists($watermarkimg)) //追加图片水印
  {
   $iswaterimage=true;
   $watermarkinfo=$this->info($watermarkimg);
   $width=$watermarkinfo['width'];
   $height=$watermarkinfo['height'];
   $watermarkcreatefunc='imagecreatefrom'.($watermarkinfo['type']=='jpg'?'jpeg':$watermarkinfo['type']);
   $watermark_im=$watermarkcreatefunc($watermarkimg);
  }
  else //追加文字水印
  {
   $iswaterimage=false;
   if(!empty($w_color) && strlen($w_color)==7)
   {
    $r=hexdec(substr($w_color,1,2));
    $g=hexdec(substr($w_color,3,2));
    $b=hexdec(substr($w_color,5,2));
   }
   $temp = imagettfbbox(ceil($w_font*2.5), 0, 'fonts/alger.ttf', $text);
   $width = $temp[2] - $temp[6];
   $height = $temp[3] - $temp[7];
   unset($temp);
  }
  スイッチ($pos)
  {
   ケース0:
    $wx = mt_rand(0,($source_w - $width));
    $wy = mt_rand(0,($source_h - $height));
    休憩;
   ケース1:
    $wx = 5;
    $wy = 5;
    休憩;
   ケース 2:
    $wx = ($source_w - $width) / 2;
    $wy = 5;
    休憩;
   ケース 3:
    $wx = $source_w - $width-5;
    $wy = 5;
    休憩;
   ケース4:
    $wx = 5;
    $wy = ($source_h - $height) / 2;
    休憩;
   ケース5:
    $wx = ($source_w - $width) / 2;
    $wy = ($source_h - $height) / 2;
    休憩;
   ケース6:
    $wx = $source_w - $width-5;
    $wy = ($source_h - $height) / 2;
    休憩;
   ケース7:
    $wx = 5;
    $wy = $source_h - $height-5;
    休憩;
   ケース8:
    $wx = ($source_w - $width) / 2;
    $wy = $source_h - $height-5;
    休憩;
   デフォルト:
    $wx = $source_w - $width-5;
    $wy = $source_h - $height-5;
    休憩;
  }
  if($iswaterimage)
  {
   if($imageinfo['type'] == 'png') {
    imagecopy($im, $watermark_im, $wx, $wy, 0, 0, $width, $height);
   } その他 {
    imagecopymerge($im, $watermark_im, $wx, $wy, 0, 0, $width, $height, $pct);
   }
  }
  それ以外
  {
   imagestring($im,$w_font,$wx,$wy,$text,imagecolorallocate($im,$r,$g,$b));
  }
  $imagefunc='image'.($imageinfo['type']=='jpg'?'jpeg':$imageinfo['type']);
  $imagefunc($im,$image);
  imagedestroy($im);
  true を返します;
 }

関数情報($image)
{
$info=array();
$info['size']=ファイルサイズ($image);
$imageinfo=getimagesize($image);
$info['width']=$imageinfo[0];
$info['高さ']=$imageinfo[1];
$info['width_height']=$imageinfo[3];
$info['mime']=$imageinfo['mime'];
unset($imageinfo);
$imageinfo=パス情報($image);
$info['パス']=$imageinfo['ディレクトリ名'].'/'; $info['type']=strto lower($imageinfo['extension']) // '.'を除く画像タイプ
; $info['名前']=$imageinfo['ファイル名'];
unset($imageinfo,$name);
$this->info=$info;
$info を返します;
}
}

http://www.bkjia.com/PHPjc/633005.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633005.html技術記事 PHP チュートリアル画像処理クラス (サムネイルの生成、透かしの追加、画像情報の取得) この記事では、画像からサムネイルを生成し、追加する可能性があるこの画像処理クラスを提供します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。