本文实例讲述了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,php实现图片局部打马赛克的方法_php技巧相关推荐

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

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

  2. php 图片局部打马赛克

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

  3. php图片横排,Discuz板块横排显示图片的实现方法_php技巧

    Discuz板块横排显示图片的实现方法_php技巧 到你目前在使用的模板中寻找 discuz.htm 找到这一段代码: onMouseOver="this.className='altbg1 ...

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

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

  5. indesign选中不了图片删除_图片神器XnView教程、方法和技巧汇总

    编者按 关于XnView的介绍和概况参阅<「神级图片软件 XnView 解析」XnView MP 和 XnView 哪个好>. 在写完上面这篇文章之后,想整理一些方法和技巧给不太熟悉XnV ...

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

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

  7. php图片添加代码,php图片添加文字水印实现代码_php技巧

    php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下: img(图片路径,水印文字,字体路径,字体大小,字体角度); 比如:$tpl->img('abc.jpg','这是 ...

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

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

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

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

最新文章

  1. 徒手撸一个简单的IOC
  2. 这款Python王者编辑器,集Pycharm和Sublime优点于一身
  3. creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI
  4. react 交互_如何在React应用程序中跟踪用户交互
  5. python 无序列表中第k大元素_Python要求O(n)复杂度求无序列表中第K的大元素实例...
  6. javascript基础知识(3) 基本语法
  7. HTTP请求头,应答头类型相关问题
  8. css 中多种边框的实现小窍门
  9. java8 interface_Java8新特性:函数式接口@FunctionalInterface使用说明
  10. SQL 关于提示SQL Server 2008评估期已过解决办法
  11. 谈表单的设计 (一) 合理对表单进行布局
  12. visual assistant x 破解版使用方法及下载地址
  13. 蓝牙耳机怎么挑选?鹏鹏数码盘点2023口碑蓝牙耳机排行榜
  14. DXF图纸打开后怎么改变保存其格式为DWG?
  15. html表单页面css样式代码,前端html表单与css样式(示例代码)
  16. 【excel】python破解excel加密视图
  17. 地面分辨率,空间分辨率(GSD为地面采样间隔)
  18. python 爬虫 Form Data爬取穷游网的数据
  19. 双极型晶体管---三极管
  20. mac安装Texpad:提示无法打开,因为APPLE无法检查其是否包含恶意软件解决方案

热门文章

  1. CentOS关闭火狐浏览器Flash过期提示
  2. 大数据开发必备面试题Hive篇
  3. #if endif 的意思
  4. 搜狗浏览器的高速模式果然很流畅
  5. 举个例子丨什么是量子计算机?比常规计算机强在哪里?
  6. 2021年5月ccaa审核员考试管理体系认证基础真题
  7. 20道经典Redis面试题
  8. CHAPTER 2 目录及文件
  9. 开箱即用的物联网平台-IoTLink
  10. 利用秀米的SVG布局的穿透功能实现横屏长图互动原理+教程