本教程扩展了基本的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中文网其他相关文章!