Rumah >pembangunan bahagian belakang >tutorial php >php抠图教程(混合模式+剪切蒙版)

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

WBOY
WBOYasal
2018-03-08 19:24:034555semak imbas

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)模式


Atas ialah kandungan terperinci php抠图教程(混合模式+剪切蒙版) . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP中有漏洞的函数总结Artikel seterusnya:node静态文件服务器详解