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

原理:

对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型。而每一像素的矩型重叠在一起,就形成了马赛克效果。

本例使用GD库的imagecolorat获取像素颜色,使用imagefilledrectangle画矩型。

效果图如下所示:

代码如下:

/** 图片局部打马赛克

* @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

for($y=$y1; $y

$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 '';

echo '';

?>

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

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

马赛克 php,php实现图片局部打马赛克的方法相关推荐

  1. 马赛克 php,php实现图片局部打马赛克的方法_php技巧

    本文实例讲述了php实现图片局部打马赛克的方法.分享给大家供大家参考.具体分析如下: 原理: 对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型.而每一像素的矩型重叠在一起,就形成了马赛克效果. ...

  2. php 图片局部打马赛克

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

  3. Java实现给图片局部打马赛克

    因为项目需要用到给图片打码的功能,本身实现也不是很复杂,就没有借鉴其他类库,参照网上的一些资料实现了一个简单的给图片局部打码的功能.也可以给一个图片的多个局部进行打码. ImageArea.java ...

  4. Java实现给图片局部打马赛克(前提是知道坐标的情况下)

    直接上代码 package com.test;/*** 图片区域类* @author hty**/ public class ImageArea {int x; //指定区域左上角横坐标int y; ...

  5. Photoshop怎么实现图片局部马赛克

    学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...

  6. linux程序给图片打马赛克,word中给图片打马赛克

    一.如何将word图片打马赛克 将word图片打马赛克的具体操作步骤如下: 我们需要准备的材料有:电脑.Word. 1.首先我们打开需要编辑的Word,在插入页面下方点击点击"形状" ...

  7. matlab检测图片马赛克,python 检测图片是否有马赛克

    原理讲的很清晰,给原博主一个赞 边缘检测之后按照正方形检索来判定是否是马赛克内容 原理知晓了之后就很好做了 话说MATLAB转化为python的过程还是很有趣的 from PIL import Ima ...

  8. python图片马赛克_python 检测图片是否有马赛克

    原理讲的很清晰,给原博主一个赞 边缘检测之后按照正方形检索来判定是否是马赛克内容 原理知晓了之后就很好做了 话说MATLAB转化为python的过程还是很有趣的 from PIL import Ima ...

  9. 图片马赛克去除工具_图片太多该如何进行排版呢?

    胖友们大家好呀,我是三儿 昨天三儿刚讲了多文字如何排版 就有胖友在后台留言说问三儿 如何对图片较多的内容排版 那么今天 三儿就来教大家 图片较多时 我们该怎样排版! 赶紧拿着小本本做好笔记哦! 图片的 ...

最新文章

  1. yunyang tensorflow-yolov3 Intel Realsense D435 (并发)使用locals()函数批量配置摄像头运行识别程序并画框(代码记录)(代码示例)
  2. micropython oled中文_micropython esp8266+ssd1306(OLED) 显示中文(示例)
  3. C++确定一个字符串是否是另一个字符串的排列的算法(附完整源码)
  4. hdu 2586 How far away ?
  5. 深入了解SpringCloud Hystrix
  6. 关于深度学习,这些知识点你需要了解一下
  7. 面试题24. 反转链表
  8. HP-UX Oracle Ioctl ASYNC_CONFIG error=1
  9. 使用Filter防止浏览器缓存页面或请求结果
  10. 微信小程序开发官方文档
  11. 用App Designer 制作2048小游戏
  12. c语言100道题 第二道 出租车计价
  13. 使用 Ruby 开发代码生成器
  14. 立创EDA安装ibom插件
  15. 学习PLC LAD 梯形逻辑宝藏网站
  16. 2D转换综合写法(13)
  17. 市场调查与分析[市场调查员][抽样技术方案][抽样方法][F检验]
  18. Sybases数据库----安装
  19. Python是“真火”还是“虚火”?
  20. ORACLE错误一览表,方便查询!

热门文章

  1. beast软件linux用法,声卡驱动设置 - 黑苹果驱动高手篇 MultiBeast用法进阶_Linux教程_Linux公社-Linux系统门户网站...
  2. Python精选库大全,建议收藏留用!
  3. Python GUI篇——关不掉的小窗口
  4. Jupyter的安装和基本使用
  5. REST与RESTful
  6. Javascript——进阶(事件、数组操作、字符串操作、定时器)
  7. 向量表示,投影,协方差矩阵,PCA
  8. 本地调试微信接口方法
  9. 为什么envi镶嵌老是出错_孩子为什么不专注,家长真的了解吗?
  10. mongodb模糊查询_MongoDB技术从0到1+