PHP 判断是否低俗图片==是否@色@情@图@片
if(validatorImage("d:\b.jpg"))
echo '是个低俗图片<br />';
else
echo '不是低俗图片<br />';
function validatorImage($fileName){
$image = getImage($fileName);
$width = ImagesX($image);
$height = ImagesY($image);
$ycb = 0;
for($y=0;$y<$height;$y++){
for($x=0;$x<$width;$x++){
$rgb = ImageColorAt($image,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$ycbcr = rgb2ycbcr($r,$g,$b);
if((86<=$ycbcr['cb']&&$ycbcr['cb']<=117)&&(140<=$ycbcr['cr']&&$ycbcr['cr']< 168)){
$ycb++;
}
}
}
imagedestroy($image);
if($ycb>(floatval($width)*floatval($height)*0.3))
return true;
else
return false;
}
function getImage($fileName){
$info = getImageSize($fileName);
$ext = null;
switch ($info[2]) {
case 1 :
$ext = "gif";
break;
case 2 :
$ext = "jpeg";
break;
case 3 :
$ext = "png";
break;
}
$function = 'ImageCreatefrom'.ucfirst($ext);
$resource = $function($fileName);
return $resource;
}
// RGB 转 YCbCr色彩
function rgb2ycbcr($r,$g,$b){
$r = floatval($r);
$g = floatval($g);
$b = floatval($b);
$y = 0.299*$r + 0.587*$g + 0.114*$b;
$cb = (1 / 1.772) * ($b - $y) + 128;
$cr = (1 / 1.402) * ($r - $y) + 128;
return array('y'=>$y,'cb'=>$cb,'cr'=>$cr);
}
说明:
上面是通过 RGB色彩模型 转成 YCbCr色彩模型 在 YCbCr色彩模型 判断低俗色的占比,如果商用还要加上肌肤色的过滤及对低俗部位的判断,依据比例对图片进行分类。
YCbCr 相关知识,可以参考http://zh.wikipedia.org/wiki/YCbCr
RGB 转成 YCbCr 公式可以参考http://blog.csdn.net/zyl910/archive/2006/05/29/759535.aspx
相关文档:
本文从 http://tech.ddvip.com/2009-02/1235627800109815.html 装载,非常感谢作者!
MySQL+PHP产生乱码原因:
◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;
◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;
......
1、社团简介:
LAMP兄弟连社团(简称兄弟连)是易第优教育学院领导下的社团组织,是学院联系广大LAMP爱好者的桥梁和纽带,是学院社团管理协调的机构。
2、社团性质:
由LAMP兄弟连发起(www.lampbrother.net)的全国专业性、公益性社会沙龙组织。
3、社团目的:
a、为爱好LAMP的朋友们搭建一个学习交流的平台
b、为 ......
【转自】:http://blog.miaoheguang.tk/archives/11
被PHP的include路径弄晕了。自己试验一通,总结如下。
定义A=包含文件 B=被A包含的文件 C=被B包含的文件
也就是说 A 包含 B, B包含C
A中有
Php 代码
require ‘[B路径]‘ //(这里 的require可以换成require_once include)
require ‘[B路径]&l ......
PHP 序列化(serialize)格式详解
前言
概述
NULL 和标量类型的序列化
简单复合类型的序列化
嵌套复合类型的序列化
自定义对象序列化
Unicode 字符串的序列化
参考文献
1.前言
PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize、unserialize。不过在
PHP 手册中对这两个函数的 ......