php打文字水印,圖片水印,生成圖片保存到本地

<?php
header("Content-type:text/html;charset=utf-8");
$source_img = 'beijing.jpg';//原圖
$water_map = 'shuiyin.jpg';//水印圖
function addWaterMap($source_img, $water_map)
{
  $img = imagecreatefromjpeg($source_img); //讀取原圖
  $img_x = imagesx($img); //原圖寬
  $img_y = imagesy($img); //原圖高
  imagealphablending($img, true);//設置爲混合填色模式
  $img_water_map = imagecreatefromjpeg($water_map);//水印圖片
  $water_x = '130'; //水印寬
  $water_y = '130'; //水印高
  $wimg_x = 80; //水印x座標
  $wimg_y = 40; //水印y座標
  imagecopy($img, $img_water_map, $wimg_x, $wimg_y, 0, 0, $water_x, $water_y); 
  //分別爲原圖,水印,水印x座標,水印y座標,水印圖片橫軸開始點,水印圖片縱軸開始點,水印橫軸結束,水印縱軸結束
  imagejpeg($img, "img_1.jpg", 95); //輸出到目標文件
  imagedestroy($img); //銷燬內存數據流
  imagedestroy($img_water_map); //銷燬內存數據流
  // return true;
  echo "生成成功!";
}

addWaterMap($source_img, $water_map);

//把文字打上去
$src = "img_1.jpg";
//2.獲取圖片的信息(得到圖片的基本信息)
$info = getimagesize($src);
//3.通過獲取圖片類型
$type = image_type_to_extension($info[2],false);
//4.在內存中創建一個圖片類型一樣的圖像
$fun = "imagecreatefrom{$type}";
//5.圖片複製到內存中
$image = $fun($src);

// 1.設置字體的路徑
$font = "fff.ttf";

//標題
$title = "TANKING";

//生成的海報文件名
$haibao_filename = md5($title).".jpg";

//3.設置字體的顏色rgb和透明度
$col = imagecolorallocatealpha($image,255,255,255,0);
//4.寫入文字,文字大小、旋轉率、X座標、Y座標
imagettftext($image,45,0,230,130,$col,$font,$title);
imagejpeg($image, $haibao_filename, 95); //輸出到目標文件
/*銷燬圖片*/
imagedestroy($image);
//刪除img_1
unlink("img_1.jpg");

// echo "<img src='img_2.jpg' width='300'/>";

代碼、素材、字體
鏈接: https://pan.baidu.com/s/1LrQo... 提取碼: fa2x

Author:TANKING
Date:2019-12-28
Web:likeyunba.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章