马赛克 php,php实现图片局部打马赛克的方法_php技巧
本文实例讲述了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技巧相关推荐
- 马赛克 php,php实现图片局部打马赛克的方法
本文实例讲述了php实现图片局部打马赛克的方法.分享给大家供大家参考.具体分析如下: 原理: 对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型.而每一像素的矩型重叠在一起,就形成了马赛克效果. ...
- php 图片局部打马赛克
php 图片局部打马赛克 原理: 对图片中选定区域的每一像素,增加若干宽度及高度,生成矩型.而每一像素的矩型重叠在一起,就形成了马赛克效果. 本例使用GD库的imagecolorat获取像素颜色,使用 ...
- php图片横排,Discuz板块横排显示图片的实现方法_php技巧
Discuz板块横排显示图片的实现方法_php技巧 到你目前在使用的模板中寻找 discuz.htm 找到这一段代码: onMouseOver="this.className='altbg1 ...
- Java实现给图片局部打马赛克
因为项目需要用到给图片打码的功能,本身实现也不是很复杂,就没有借鉴其他类库,参照网上的一些资料实现了一个简单的给图片局部打码的功能.也可以给一个图片的多个局部进行打码. ImageArea.java ...
- indesign选中不了图片删除_图片神器XnView教程、方法和技巧汇总
编者按 关于XnView的介绍和概况参阅<「神级图片软件 XnView 解析」XnView MP 和 XnView 哪个好>. 在写完上面这篇文章之后,想整理一些方法和技巧给不太熟悉XnV ...
- Java实现给图片局部打马赛克(前提是知道坐标的情况下)
直接上代码 package com.test;/*** 图片区域类* @author hty**/ public class ImageArea {int x; //指定区域左上角横坐标int y; ...
- php图片添加代码,php图片添加文字水印实现代码_php技巧
php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下: img(图片路径,水印文字,字体路径,字体大小,字体角度); 比如:$tpl->img('abc.jpg','这是 ...
- Photoshop怎么实现图片局部马赛克
学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...
- linux程序给图片打马赛克,word中给图片打马赛克
一.如何将word图片打马赛克 将word图片打马赛克的具体操作步骤如下: 我们需要准备的材料有:电脑.Word. 1.首先我们打开需要编辑的Word,在插入页面下方点击点击"形状" ...
最新文章
- 徒手撸一个简单的IOC
- 这款Python王者编辑器,集Pycharm和Sublime优点于一身
- creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI
- react 交互_如何在React应用程序中跟踪用户交互
- python 无序列表中第k大元素_Python要求O(n)复杂度求无序列表中第K的大元素实例...
- javascript基础知识(3) 基本语法
- HTTP请求头,应答头类型相关问题
- css 中多种边框的实现小窍门
- java8 interface_Java8新特性:函数式接口@FunctionalInterface使用说明
- SQL 关于提示SQL Server 2008评估期已过解决办法
- 谈表单的设计 (一) 合理对表单进行布局
- visual assistant x 破解版使用方法及下载地址
- 蓝牙耳机怎么挑选?鹏鹏数码盘点2023口碑蓝牙耳机排行榜
- DXF图纸打开后怎么改变保存其格式为DWG?
- html表单页面css样式代码,前端html表单与css样式(示例代码)
- 【excel】python破解excel加密视图
- 地面分辨率,空间分辨率(GSD为地面采样间隔)
- python 爬虫 Form Data爬取穷游网的数据
- 双极型晶体管---三极管
- mac安装Texpad:提示无法打开,因为APPLE无法检查其是否包含恶意软件解决方案