• 原理:

对图片中选定区域的每一像素,增加若干宽度及高度,来生成矩型。而每一像素的矩型重叠在一起,就形成了马赛克效果。本例使用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实现图片马赛克效果相关推荐

  1. OpenCVC++实现图片马赛克效果

    图片马赛克效果 还没开学,在家闲来无事,就自己写了点代码实现了图片马赛克的效果.看了网上很多大佬的文章,决定还是自己动手来试试.配置环境为:OpenCV4.1.2+Visual Studio 马赛克原 ...

  2. html5游戏开发马赛克对比,基于HTML5 Canvas的纯JS图片马赛克效果插件

    这是一款基于HTML5 canvas的图片马赛克js插件.该图片马赛克插件使用简单,可调整马赛克的大小,透明度等属性,适合用于制作一些特殊的图片效果. 基于HTML5 Canvas的纯JS图片马赛克效 ...

  3. python图片马赛克_Python实现PS滤镜中马赛克效果示例

    本文实例讲述了Python实现PS滤镜中马赛克效果.分享给大家供大家参考,具体如下: 这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如 ...

  4. Java 简单图片 马赛克,黑白画,珠纹化,油画效果等处理技术 原理及实现 (简单UI)

    Java 图片马赛克,黑白画,珠纹化,油画效果等处理技术 原理及实现 1. 需要用到的包 java.awt // 用于创建用户界面和绘制图形图像的所有类 javax.swing // 提供一组&quo ...

  5. 【canvas马赛克效果】根据加载的图片动态生成对应的马赛克图片

    马赛克效果的主要js close-pixelate.js /*!* Close Pixelate v2.0.00 beta* http://desandro.com/resources/close-p ...

  6. 图片转换为马赛克效果

    / // 程序名称:将图片转换为马赛克效果 // 编译环境:VS2013,EasyX 20180727(beta) // 整 理:鼠瓜 // 最后修改:2018-12-9 //算法说明:求出每个小方块 ...

  7. C++将图片转换为马赛克效果

    C++将图片转换为马赛克效果 1. 算法原理 求出每个小方块内所有像素的颜色平均值,然后用来设置为该小方块的颜色.依次处理每个小方块,即可实现马赛克效果 原图 2. 整张图片处理成马赛克效果 #inc ...

  8. Java中实现六种图像处理的效果(灰度化、马赛克效果、去背景实现、珠纹化实现、黑白版画效果、油画效果)

    ** Java中实现六种图像处理的效果(灰度化.马赛克效果.去背景实现.珠纹化实现.黑白版画效果.油画效果) ** 本文的编程的思想: 先将实现这六种效果的方法写入一个名为pic_performanc ...

  9. Java中的实现马赛克效果以及灰度效果----整张图片

    ** Java中的实现马赛克效果以及灰度效果-----整张图片 ** 实现该效果的思路: 我们知道图片是由一个一个的像素组成的,比如一张图片的分辨率为800 * 800,则它是由800个像素 * 80 ...

最新文章

  1. PyCharm入门教程——在编辑器中使用拖放
  2. JQuery轻量级网页编辑器 选中即可编辑
  3. linux chpasswd命令 批量修改用户密码
  4. php 转换数组的字符集,PHP 自动转换字符集(支持字符串和数组)功能实例
  5. Flask对请求的处理
  6. java 修改最大nio连接数_关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?...
  7. 来到博客园 就要好好记录 分享技术
  8. Python 基础 - Day 2 Learning Note - 字符转编码操作
  9. 迷恋猫爆红,彰显区块链 NFT 巨大魔力!
  10. php底层运行机制(二)
  11. 网络电视机顶盒测试软件,网络机顶盒最值得安装的软件,可免费收看全网vip独播剧!...
  12. Filter中获取传递参数(解决post请求参数问题)
  13. 开源云真机平台-Sonic应用实践
  14. 蓝桥杯——摔手机 动态规划
  15. 部署Guacamole远程控制桌面
  16. android记账本登录界面,Android记账本开发(一):整体UI界面布局
  17. 计算机键盘怎么换键,电脑修改键盘按键的方法
  18. oracle中文名转拼音,oracle 汉字转拼音
  19. 【论文汇总】2020上半年阿里、腾讯、百度入选AI顶会论文(附地址)
  20. 2022 年 2 月产品大事记

热门文章

  1. 找二叉树中给定元素的的左孩子结点_LeetCode高频题:二叉树(五)
  2. 关键点检测算法(一)总体介绍
  3. 数字图像处理资料集锦(Python、C++、Matlab)
  4. 理解JavaScript的执行机制
  5. rsync远程数据同步工具的使用
  6. selenium+python中,框架中,怎么返回上一个菜单
  7. java代码代替xml实现图片
  8. IE无法安装Activex控件
  9. EGOImageView 解析
  10. centos+php+nginx的php.ini无法加载的问题