精華 如何在 PHP 中自動(dòng)設(shè)置縮略圖,最簡(jiǎn)單的實(shí)現(xiàn)方式
我們寫文章的時(shí)候 沒有適合的圖片做縮略圖 添加了縮略圖又感覺不好看,那有沒有能直接在后端處理縮略圖 自動(dòng)配圖呢?
邏輯
那我是這樣想的 先找一找比較適合的背景圖片 比如
我們通過php處理 需要融合一張圖片在里面 然后在加上字
代碼如下:先處理背景圖片
// 加載背景圖片
$background = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'] . '/static/them/images/wenz.png');
// 加載要融合的圖片
$overlay = imagecreatefrompng('https://www.yunshi5.com/images/%E7%8A%AF%E5%A4%AA%E5%B2%81%E6%88%B4%E6%9C%B1%E7%A0%82%E9%A5%B0%E5%93%81%E5%A5%BD%E5%90%97.jpg');
跟著,咱們?cè)偬砑訕?biāo)題
// 設(shè)置標(biāo)題顏色和字體
$titleColor = imagecolorallocate($background, 0, 0, 0);
$fontPath = $_SERVER['DOCUMENT_ROOT'].'/static/fonts/AlimamaFangYuanTiVF-Thin.ttf'; // 字體文件路徑,例如:'arial.ttf'
$fontSize = 40; // 字體大小
$title = "可能是首創(chuàng)的自定義表單支付功能演示";
$titleX = 360; // 標(biāo)題的X坐標(biāo)
$titleY = 250; // 標(biāo)題的Y坐標(biāo)
// 在背景圖片上添加標(biāo)題
imagettftext($background, $fontSize, 0, $titleX, $titleY, $titleColor, $fontPath, $title);
獲取融合圖片的尺寸
$overlayWidth = imagesx($overlay);
$overlayHeight = imagesy($overlay);
// 計(jì)算融合圖片的位置(中下)
$overlayX = ($bgWidth - $overlayWidth) / 2;
$overlayY = $bgHeight - $overlayHeight - 250;
然后通過獲得數(shù)據(jù)進(jìn)行渲染 然后增加邊框
// 將融合圖片復(fù)制到背景圖片上
imagecopy($background, $overlay, round($overlayX), round($overlayY), 0, 0, (int)$overlayWidth, (int)$overlayHeight);
$bgColor = imagecolorallocate($overlay, 255, 255, 255); // 背景顏色
$borderColor = imagecolorallocate($overlay, 0, 0, 0); // 邊框顏色
$borderThickness = 10; // 邊框厚度
$borderRadius = 20; // 圓角半徑
// 繪制黑色邊框(厚度為10px,圓角半徑為20px)
for ($i = 0; $i < $borderThickness; $i++) {
// 繪制邊框
imagerectangle($background, (int)$overlayX - $i, (int)$overlayY - $i, (int)$overlayX + (int)$overlayWidth + $i - 1, (int)$overlayY + (int)$overlayHeight + $i - 1, $borderColor);
}
最后
// 輸出圖片
imagejpeg($background);
// 銷毀圖片資源
imagedestroy($background);
imagedestroy($overlay);
效果
轉(zhuǎn)自:https://www.astrocms.cn/zaqizaba/8.html