PHP 使用gd庫給圖片加圖片水印,文字水印,并返回路徑

//圖片水印

$mark_filename = './02.jpg';

//獲取圖片信息

$info = getimagesize($mark_filename);

//獲取圖片的后綴

$type = image_type_to_extension($info[2], false);

//拼接圖片資源句柄函數

$func = 'imagecreatefrom' . $type;

//創建圖片資源句柄

$images = $func($mark_filename);

//裁剪圖片的大小為原圖的4分之一

$w = $info[0] / 4;

$h = $info[1] / 4;

//在內存中創建畫板

$mark_image = imagecreatetruecolor($w, $h);

//裁剪

imagecopyresampled($mark_image, $images, 0, 0, 0, 0, $w, $h,$info[0],$info[1]);

//銷毀內存

imagedestroy($images);

//需要加水印的圖片

$filename = '11.jpg';

//獲取圖片信息

$mark = getimagesize($filename);

//獲取圖片后綴

$mark_type = image_type_to_extension($mark[2], false);

//創建圖片資源句柄

$mark_func = 'imagecreatefrom' . $mark_type;

$image = $mark_func($filename);

//合并,添加水印圖片

imagecopymerge($image, $mark_image, 20, 30, 0, 0, $w, $h, 50);

//銷毀內存

imagedestroy($mark_image);

//文字水印

$font = "MSYH.TTF";

$content = "this 文字";

//設置字體的顏色及透明圖

$col = imagecolorallocatealpha($image, 45, 56, 123, 50);

//將文字寫入圖片

imagettftext($image, 20, 30, 400, 100, $col, $font, $content);

//圖片輸出函數拼接

$outFunc = 'image'.$type;

//設置文件路徑

$ml = date('Ymd', time());//目錄名稱

$url = $ml.'/'.time().'.png';//存儲的路徑

//判斷目錄是否存在

if (file_exists($ml) == false){

? ? //創建目錄,并且設置最高權限

? ? if (mkdir($ml, 0700, true)){

? ? ? ? echo '創建目錄成功';

? ? }else{

? ? ? ? echo '創建目錄失敗';

? ? }

}

//判斷是http還是https

$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';

//全路徑

$urls = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $url;

//生成圖片

if ($outFunc($image,$url)){

? ? var_dump('壓縮圖片成功,圖片路徑為:'.$urls);

}else{

? ? var_dump('壓縮圖片失敗');

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。