首页 >后端开发 >php教程 >php抠图教程(混合模式+剪切蒙版)

php抠图教程(混合模式+剪切蒙版)

WBOY
WBOY原创
2018-03-08 19:24:034555浏览

PS:本文所述所有内容都需要ImageMagick库支持。一般主机都支持,但个人自己搭建本地环境默认没有开启ImageMagick。exec函数也不可以禁用。

1.抠图

<?php
//纯色底抠图
$input="./1.jpg";
//待抠图文件路径
$ouput="./1.png";
//存放路径
$bgcolor="white";
//背景颜色。可使用十六进制色码和rgb(1,1,1)
$fuzz="30000"; 
//容差
exec("convert $input -fuzz $fuzz -transparent $bgcolor $ouput");
//执行抠图操作。并输入到指定路径

抠图前(白底):

v2-6710472532ab9cb4fcceb5327e93924a_hd.jpg

抠图后(png透明):

v2-eef60b9ec64b48a9f3575885fef5add0_hd.jpg

2.羽化边缘(自动检测背景)

<?php
$A1=&#39;1.png&#39;;
$A2=&#39;2.png&#39;;
$A3=&#39;3.png&#39;;
$A4=&#39;4.png&#39;;
$A5=&#39;5.png&#39;;
$img=&#39;待扣图.jpg&#39;;
$im = new Imagick($img);
//8000为边缘容差,修改此数值可适当去除多余相似杂色
$im->transparentPaintImage($im->getImagePixelColor(0, 0), 0, 8000,0);//生成png格式
$im->setImageFormat("png");//保存文件名
$im->writeImage("$A1");//细化边缘
exec("convert $A1 -threshold 75% $A2");
exec("convert $A2 -fill black -opaque white $A3");
exec("convert $A3 -channel RGBA -blur 0x2 $A4");
exec("convert $A1 $A4 -alpha on -compose copy_opacity -composite $A5");
//删除临时图片
unlink($A1);
unlink($A2);
unlink($A3);
unlink($A4);

抠图前

v2-6710472532ab9cb4fcceb5327e93924a_hd.jpg

抠图后

v2-eef60b9ec64b48a9f3575885fef5add0_hd.jpg

3.剪切蒙版

<?php
$img="1.jpg";//背景
$mask="2.png";//蒙版图。png格式
exec("convert $img $mask -alpha on -compose copy_opacity -composite ouput.png");

背景

v2-6710472532ab9cb4fcceb5327e93924a_hd.jpg

遮罩

v2-1f685af3cd28ae9927bf52a552893a53_hd.jpg

最后效果

v2-eef60b9ec64b48a9f3575885fef5add0_hd.jpg

4.混合模式

<?php
//-geometry size size 叠加到指定位置坐标
//-compose xxxx 混合模式
$img=‘1.jpg’;//背景图
$img2=‘2.jpg’;//贴图
exec(&#39;convert $img $img2 -geometry +480+80 -compose Multiply -composite ouput.jpg&#39;);

背景图


v2-6710472532ab9cb4fcceb5327e93924a_hd.jpg

叠加图(白底)

v2-1f685af3cd28ae9927bf52a552893a53_hd.jpg

最终效果

v2-955671db208ac2736fc2c8913326a1cf_hd.jpg


混合模式参数说明: ps:-compose 后面的参数为混合模式

php支持支持以下混合模式参数

Multiply, Screen, Bumpmap, Divide, Plus, Minus,

ModulusAdd, ModulusSubtract, Difference, Exclusion, Lighten, Darken, LightenIntensity, DarkenIntensity,


混合模式中英文对照

1. 正常(Normal)模式

2. 溶解(Dissolve)模式

3. 变暗(Darken)模式

4. 正片叠底(Multiply)模式

5. 颜色加深(Clolor Burn)模式

6. 线性加深(Linear Burn)模式

7. 变亮(Lighten)模式

8. 滤色(Screen)模式

9. 颜色减淡(Clolor Dodge)模式

10. 线性减淡(Linear Dodge)模式

11. 叠加(Overlay)模式

12. 柔光(Soft Light)模式

13. 强光(Hard Light)模式

14. 亮光(Vivid Light)模式

15. 线性光(Linear Light)模式

16. 点光(Pin Light)模式

17. 差值(Diference)模式

18. 排除(Exclusion)模式

19. 色相(Hue)模式

20. 饱和度(Saturation)模式

21. 颜色(Color)模式

22. 亮度(Luminosity)模式


以上是php抠图教程(混合模式+剪切蒙版) 的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn