php_PHP チュートリアルで画像にウォーターマークを追加する

WBOY
リリース: 2016-07-13 17:42:41
オリジナル
931 人が閲覧しました

/**
* 画像に透かしを追加します (png/jpg/gif 形式に適用可能)
*
* @author flynetcn
*
* @param $srcImg 元の画像
* @param $waterImg 透かし入りの画像
* @param $savepath パスを保存
* @param $savename 保存名
* @param $positon 透かしの位置
* 1: 左上、2: 右上、3: 中央、4: 左下、5: 右下
* @param $alpha 透明度- - 0 : 完全に透明、100: 完全に不透明
*
* @return 成功 -- 透かし入れ後の新しい画像アドレス
* * 失敗 -- -1: 元のファイルが存在しない、-2: 透かし画像が存在しない、- 3: 元のファイル画像オブジェクトの作成に失敗しました
* * -4: ウォーターマークファイル画像オブジェクトの作成に失敗しました -5: ウォーターマーク後の新しい画像の保存に失敗しました
*/
function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $positon=5, $alpha=30)
{
$temp = pathinfo($srcImg);
$name = $temp[ベース名];
$path = $temp[ディレクトリ名];
$exte = $temp[拡張子];
$savename = $savename : $name;
? $savepath = $savepath ? $savepath : $path;
$savefile = $savename;
$srcinfo = @getimagesize($srcImg);
if (!$srcinfo) {
return -1;元のファイルは存在しません
}
$waterinfo = @getimagesize($waterImg);
if (!$waterinfo) {
return -2; //ウォーターマーク画像は存在しません
}
$srcImgObj = image_create_from_ext($srcImg) );
if (!$srcImgObj) {
return -3; //元のファイル画像オブジェクトの作成に失敗しました
}
$waterImgObj = image_create_from_ext($waterImg);
if (!$waterImgObj) {
return -4;ウォーターマーク ファイル画像オブジェクトの作成に失敗しました
}
switch ($positon) {
//1 上部が左側です
case 1: $x=$y=0; ブレーク;
//2 上部が右側です
ケース 2: $x = $srcinfo[0] -$waterinfo[0]; $y = 0; Break;
//3 中心化
ケース 3: $x = ($srcinfo[0]-$waterinfo[0]) /2; $y = ($srcinfo[1]-$waterinfo[1])/2; Break;
//4 下が左側です
ケース 4: $y = $srcinfo[1] -$waterinfo[1]; Break;
//5 右下
ケース 5: $x = $srcinfo[0]-$waterinfo[0]; ;
デフォルト: $x=$y=0;
}
imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $alpha);
switch ($srcinfo[2]) {
ケース 1: imagegif($srcImgObj, $savefile); ブレーク;
ケース 2: imagejpeg($srcImgObj, $savefile);
ケース 3: imagepng($srcImgObj, $savefile); ); Break;
デフォルト: return -5; // 保存に失敗しました
}
imagedestroy($srcImgObj);
imagedestroy($waterImgObj);
return $savefile;
}

function image_create_from_ext($imgfile)
{
$info = getimagesize($imgfile);
$im = null;
switch ($info[2]) {
case 1: $im=imagecreatefromgif($imgfile);
ケース 2: $im=imagecreatefromjpeg($imgfile); ブレーク;
ケース 3: $im=imagecreatefrompng($imgfile); ブレーク;
}
return $im;
}

http://www.bkjia.com/PHPjc/486057.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486057.html技術記事 ?php /** * 画像に透かしを追加します (png/jpg/gif 形式に適用されます) * * @author flynetcn * * @param $srcImg 元の画像* @param $waterImg 透かし画像* @param $savepath 保存パス* @para ..
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート