源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 113|回复: 20

[PHP编程] php实现图片局部打马赛克的方法

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2015-2-11 10:45:40 | 显示全部楼层 |阅读模式
这篇文章主要介绍了php实现图片局部打马赛克的方法,实例分析了php针对图片操作的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php实现图片局部打马赛克的方法。分享给大家供大家参考。具体分析如下:

原理:

对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型。而每一像素的矩型重叠在一起,就形成了马赛克效果。
本例使用GD库的imagecolorat获取像素颜色,使用imagefilledrectangle画矩型。

效果图如下所示:

代码如下:
复制代码 代码如下:<?php 
/** 图片局部打马赛克
* @param  String  $source 原图
* @param  Stirng  $dest   生成的图片
* @param  int     $x1     起点横坐标
* @param  int     $y1     起点纵坐标
* @param  int     $x2     终点横坐标
* @param  int     $y2     终点纵坐标
* @param  int     $deep   深度,数字越大越模糊
* @return boolean
*/ 
function imageMosaics($source, $dest, $x1, $y1, $x2, $y2, $deep){ 
 
    // 判断原图是否存在 
    if(!file_exists($source)){ 
        return false; 
    } 
 
    // 获取原图信息 
    list($owidth, $oheight, $otype) = getimagesize($source); 
 
    // 判断区域是否超出图片 
    if($x1>$owidth || $x1<0 || $x2>$owidth || $x2<0 || $y1>$oheight || $y1<0 || $y2>$oheight || $y2<0){ 
        return false; 
    } 
 
    switch($otype){ 
        case 1: $source_img = imagecreatefromgif($source); break; 
        case 2: $source_img = imagecreatefromjpeg($source); break; 
        case 3: $source_img = imagecreatefrompng($source); break; 
        default: 
            return false; 
    } 
 
    // 打马赛克 
    for($x=$x1; $x<$x2; $x=$x+$deep){ 
        for($y=$y1; $y<$y2; $y=$y+$deep){ 
            $color = imagecolorat($source_img, $x+round($deep/2), $y+round($deep/2)); 
            imagefilledrectangle($source_img, $x, $y, $x+$deep, $y+$deep, $color); 
        } 
    } 
 
    // 生成图片 
    switch($otype){ 
        case 1: imagegif($source_img, $dest); break; 
        case 2: imagejpeg($source_img, $dest); break; 
        case 3: imagepng($source_img, $dest); break; 
    } 
 
    return is_file($dest)? true : false; 
 

 
$source = 'source.jpg'; 
$dest = 'dest.jpg'; 
 
$flag = imageMosaics($source, $dest, 176, 98, 273, 197, 4); 
echo '<img src="'.$source.'">'; 
echo '<img src="'.$dest.'">'; 
?>

完整实例代码点击此处本站下载

希望本文所述对大家的php程序设计有所帮助。

回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-9 09:19:03 | 显示全部楼层
还有什么好东西没
回复 支持 反对

使用道具 举报

15

主题

2万

回帖

122

积分

注册会员

Rank: 2

积分
122
发表于 2022-8-10 19:37:48 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2022-9-18 06:01:27 | 显示全部楼层
笑纳了老板
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

99

积分

注册会员

Rank: 2

积分
99
发表于 2023-1-5 18:11:58 | 显示全部楼层
哦哦哦哦哦哦哦哦哦
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

93

积分

注册会员

Rank: 2

积分
93
发表于 2023-1-21 00:00:21 | 显示全部楼层
hi哦和烦恼农家女
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-2-5 16:12:25 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

120

积分

注册会员

Rank: 2

积分
120
发表于 2023-7-30 03:20:38 | 显示全部楼层
vcxvcxv
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-4 16:46:00 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-25 08:14:55 | 显示全部楼层
撒房产税陈飞飞
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-21 23:57 , Processed in 0.128570 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表