ホームページ > php教程 > php手册 > PHP画像処理:ウォーターマークとサムネイルの実装(カスタム関数:ウォーターマーク、サムネイル)

PHP画像処理:ウォーターマークとサムネイルの実装(カスタム関数:ウォーターマーク、サムネイル)

WBOY
リリース: 2016-06-13 12:12:52
オリジナル
767 人が閲覧しました

早速、コードを投稿します:

コードをコピーします コードは次のとおりです:


/** ***********************************
//関数:ウォーターマーク($bigimg, $smallimg, $ coord = 1)
//関数: ウォーターマークを追加します
//パラメーター:
$bigimg 必須。大きな画像 -- 透かしを入れる画像
$smallimg 必須。小さい画像
$coord オプション。大きな画像内の透かしの位置、
1 左上隅、2 右上隅、4 左下隅、5 中央
//例: Watermark('datu.png', 'xiaotu.png', 3); // datu.png にウォーターマークを追加します。ウォーターマークの位置は右下隅にあります
******************* ********** *****/
function Watermark($bigimg, $smallimg, $coord = 1){
//2 つの画像をロードし、PHP で認識されるエンコード形式に変換します。
/ /imagecreate 関数と同等ですが、ここで作成されるのは空のイメージではありません。
$bi = getimagesize($bigimg);
switch($bi[2]){
ケース 1:
$im1 = imagecreatefromgif($bigimg);
ケース 2;
$im1 = imagecreatefromjpeg($bigimg);break;
ケース 3;
$im1 = imagecreatefrompng($bigimg);break;
}
$si = getimagesize($smallimg);
switch($si[2]){
ケース 1:
$im2 = imagecreatefromgif($smallimg);break;
ケース 2;
$im2 = imagecreatefromjpeg($smallimg); Break;
case 3;
$im2 = imagecreatefrompng($smallimg);break;
}
// ウォーターマークを作成します - 原則: 小さい画像を大きい画像にコピーします。ここで座標値の計算に注目してください。
switch($coord){
ケース 1:
imagecopy ( $im1, $im2, 0, 0, 0, 0, $si[0] , $si[1 ] );
ケース 2:
imagecopy ( $im1, $im2, $bi[0]-$si[0], 0, 0, 0, $si[0] , $si[1 ] );
ケース 3:
imagecopy ( $im1, $im2, $bi[1]-$si[1] , 0, 0, $si[0], $si[1] );
ケース 4:
imagecopy ( $im1, $im2, 0, $bi[1]-$si[1] , 0, 0, $si[0], $si[1] );
ケース 5:
imagecopy ( $im1, $im2, ($bi[0]-$si[0]) /2, ($ bi[1]-$si[1])/2, 0, 0, $si[0], $si[1] );
}
// で画像を生成します。サフィックス名に基づいて異なる形式 File
switch($bi[2]){
case 1:
imagegif($im1);break;
case 2; );ブレーク;
ケース 3;
imagepng($im1); ブレーク;
}
/************************************************
/ /関数: summnail($srcimg, $multiple)
//関数: サムネイル画像を生成します
//パラメータ:
// $srcimg は必須です。ソース画像ファイル名
// $multiple オプション。複数の縮小、デフォルトは 2 倍、つまり元のサイズの 1/2 に縮小されます
//注: gif、jpg、および png 形式の画像のみをサポートします。
//例: summnail('my picture.jpg', 5);
*************************** **********************/
functionthumbnail($srcimg , $multiple = 2){
//画像を読み込み、その情報を配列に保存します
$srcimg_arr = getimagesize($srcimg)
//サムネイルの倍数を計算します。
$thumb_width = $srcimg_arr [0] / $multiple;
$thumb_height = $srcimg_arr[1] / $multiple;
// 作成する画像の形式 (PHP が認識するエンコーディングに変換) )
switch($srcimg_arr [2]){
ケース 1:
$im = imagecreatefromgif($srcimg);break;
ケース 2;
$im = imagecreatefromjpeg($srcimg) ;break;
ケース 3 ;
$im = imagecreatefrompng($srcimg);break;
}
//サムネール処理を開始します
$thumb = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresize($thumb , $im, 0, 0, 0 ,0, $thumb_width, $thumb_height, $srcimg_arr[0], $srcimg_arr[1]);
switch($srcimg_arr[2]);
ケース 1:
imagegif($thumb);
ケース 3; ;
}
imagepng($thumb);
imagedestroy($thumb);
}
//テスト時にこれら 2 つの関数を同時に使用しないでください。
//watermark('datu.png','xiaotu.png',5);
サムネイル('abc.png',3);


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート