PHP随机函数概率
在PHP中,有很多种生成随机数的函数,常见的有rand()和mt_rand()函数。这些函数都可以生成随机数,但是我们需要考虑到随机数的分布概率,即每个数字出现的概率是否相等。
rand()函数是PHP自带的基本随机数生成函数,可以生成一个在指定范围内的随机整数。它的语法如下:
```php
int rand ( int $min , int $max )
```
其中,$min表示随机数的最小值,$max表示随机数的最大值。需要注意的是,使用rand()函数生成的随机数并不是真正的随机数,它使用的是伪随机数生成算法。这个算法会根据一个种子(seed)来生成一个数列,这个数列看上去像是随机数,但实际上是确定的,只要给定相同的种子,就会生成相同的数列。默认情况下,rand()函数使用的种子是当前的系统时间。
相比之下,mt_rand()函数的随机数分布更为均匀。mt_rand()函数是Mersenne Twister算法生成的随机数,能够生成更高质量的随机数,而且速度更快。它的语法如下:
```php
int mt_rand ( int $min , int $max )
```
可以看到,mt_rand()函数和rand()函数的语法是一模一样的。但是,mt_rand()函数的生成随机数的分布概率更加均匀,每个数字出现的概率都接近于相等。
PHP添加水印函数
在Web开发中,图片处理是不可避免的一部分。其中,添加水印是一项常见的需求,可以降低图片被盗用的风险,也可以为图片增添标识等信息。在PHP中,可以使用GD扩展来实现图片处理的功能。GD扩展是一个开源的图像处理库,可以用来创建、读取和修饰图片,广泛应用于PHP的图像处理中。
下面是一个简单的添加水印的PHP函数:
```php
function watermark($src_path, $watermark_path, $save_path) {
//创建图像资源句柄
$src_res = imagecreatefromjpeg($src_path);
$watermark_res = imagecreatefrompng($watermark_path);
//获取图像资源句柄的宽高
$src_width = imagesx($src_res);
$src_height = imagesy($src_res);
$watermark_width = imagesx($watermark_res);
$watermark_height = imagesy($watermark_res);
//计算水印图片的位置
$pos_x = ($src_width - $watermark_width) / 2;
$pos_y = ($src_height - $watermark_height) / 2;
//合并图像
imagecopy($src_res, $watermark_res, $pos_x, $pos_y, 0, 0, $watermark_width, $watermark_height);
//保存图像
imagejpeg($src_res, $save_path);
//销毁图像资源句柄
imagedestroy($src_res);
imagedestroy($watermark_res);
}
```
这个函数接收三个参数:原图路径、水印图路径和保存路径。首先,通过imagecreatefromjpeg()和imagecreatefrompng()函数创建原图和水印图的资源句柄。接着,使用imagesx()和imagesy()函数获取各个图像资源句柄的宽高,然后计算出水印图片在原图中的位置。最后,使用imagecopy()函数将水印图片和原图合并,并使用imagejpeg()函数将合成后的图像保存到指定路径。最后还要别忘了销毁所有的图像资源句柄。
需要注意的是,这个函数只支持将水印图添加到JPEG图片中,如果要添加到其他格式的图片中,需要修改创建图像资源句柄的函数,比如imagecreatefromgif()和imagecreatefrombmp()等函数。另外,如果要增加水印的透明度,可以使用imagecopymerge()函数。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
好运满仓,祝你吉星高照。