本教程擴展了基本的PHP GD圖像操縱,建立在圖像加載,裁剪,旋轉,縮放和翻轉的先前覆蓋範圍內。 我們將探索高級技術,例如捕獲圖像輸出流和嵌入水印。 以前,我們檢查了圖像輸出的
和>。 我們可以使用imagejpeg()
之類的函數捕獲此輸出。 例如,沒有文件名參數輸出原始流; imagegif()
捕獲此流。 然後可以將此原始數據編碼為基礎64。 相反,可以將基本64編碼的圖像字符串解碼並通過imagecreatefromjpeg()
來創建圖像。 這是保存base64編碼圖像的方法:imagejpeg()
>
ob_get_contents()
imagecreatefromstring()
這將解碼base64字符串,創建圖像資源並將其保存為JPEG。
<?php $image_data = base64_decode($image_data_base64); $img = imagecreatefromstring($image_data); imagejpeg($img, 'profile.jpg'); imagedestroy($img); ?>添加水印 GD可以很容易地實現水印。 這增強了圖像所有權和品牌認可。
此代碼加載主圖像和水印,將水印縮放到主圖像的寬度五分之一,並使用
定位。 動態水印調整大小可確保不論主圖像的尺寸如何<?php $im_php = imagecreatefromjpeg('waterfall.jpg'); $watermark = imagecreatefrompng('watermark.png'); $im_width = imagesx($im_php); $im_height = imagesy($im_php); $watermark = imagescale($watermark, $im_width/5); $wt_width = imagesx($watermark); $wt_height = imagesy($watermark); imagecopy($im_php, $watermark, 0.95*$im_width - $wt_width, 0.95*$im_height - $wt_height, 0, 0, $wt_width, $wt_height); $new_name = 'waterfall-watermark.jpg'; imagejpeg($im_php, $new_name); ?>
超出水印,元數據(例如位置或時間戳)可以類似地合併。
imagecopy()
以上是調整大小和操縱PHP的圖像(示例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!