在網頁開發中,經常需要向圖片中添加文字或水印,以增加信息的傳達和互動性。本文將教你如何使用PHP開發,通過調用百度文心一言API獲取隨機語句,並使用GD庫實現圖片生成和水印處理功能。
首先,我們需要獲取文心一言的隨機語句。百度提供了文心一言的開放API,我們可以通過HTTP請求獲取隨機語句數據。以下是使用PHP獲取隨機語句的代碼示例:
$url = 'https://api.btstu.cn/yan/api.php';
$response = file_get_contents($url);
$data = json_decode($response, true);
$random_sentence = $data['text'];
上述代碼中,我們通過`file_get_contents`函數發送HTTP請求,獲取文心一言的隨機語句,並將返回的JSON數據解析為PHP數組,最終取得其中的`text`字段,得到隨機語句。
接下來,我們將使用PHP的GD庫來生成圖片。 GD庫是PHP中一個強大的圖像處理工具,它提供了豐富的函數,用於處理圖片、繪製文字、設置顏色等。以下是一個簡單的示例,展示如何使用GD庫生成一張圖片,並在上面繪製隨機語句:
$width = 500;
$height = 200;
$image = imagecreatetruecolor($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
$font = 'path/to/font.ttf';
imagettftext($image, 30, 0, 50, 100, $text_color, $font, $random_sentence);
imagepng($image, 'path/to/image.png');
imagedestroy($image);
以上代碼創建了一張指定大小的空白圖片,並設置了背景色和文字顏色。通過`imagettftext`函數,我們將隨機語句繪製到圖片上,最後通過`imagepng`函數保存生成的圖片。
如果想為生成的圖片添加水印,GD庫同樣提供了便捷的方法。我們可以使用`ImageCopyMerge`函數將水印圖片合成到原始圖片上。以下是添加水印的代碼示例:
$source_image = imagecreatefrompng('path/to/source_image.png');
$watermark_image = imagecreatefrompng('path/to/watermark.png');
$watermark_width = imagesx($watermark_image);
$watermark_height = imagesy($watermark_image);
$source_width = imagesx($source_image);
$source_height = imagesy($source_image);
$pos_x = $source_width - $watermark_width - 10;
$pos_y = $source_height - $watermark_height - 10;
imagecopymerge($source_image, $watermark_image, $pos_x, $pos_y, 0, 0, $watermark_width, $watermark_height, 50);
imagepng($source_image, 'path/to/output_image.png');
imagedestroy($source_image);
通過上述代碼,我們首先加載了原始圖片和水印圖片,並通過`ImageCopyMerge`函數將水印圖片合併到原始圖片的指定位置。最終,通過`imagepng`函數保存處理後的圖片。
通過使用PHP的GD庫和百度文心一言API,我們可以輕鬆實現圖片生成和水印處理功能。通過隨機語句和水印的結合,不僅能提升圖片的互動性和趣味性,還能增加網頁的視覺吸引力。