使用imagick如何实现类似ps的填充图片(正片叠底模式)的功能

vincent_hou_1982 2015-11-22 06:42:53
使用imagick如何实现类似ps的填充图片(正片叠底模式)的功能。
如下图:怎么样才能将花色图片渲染到模特的衣服上去(这个布料花色图片是随意改变的),或者有其他说明实现的思路,不胜感激。
...全文
716 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vincent_hou_1982 2018-07-10
  • 打赏
  • 举报
回复
找到解决方案了,但是不是最好的,不能多任务处理。
weixin_41543971 2018-06-30
  • 打赏
  • 举报
回复
@vincent_hou_1982 请问有解决方案了吗?
e360 2017-03-29
  • 打赏
  • 举报
回复
有了解决方案了吗?
xuzuning 2015-11-25
  • 打赏
  • 举报
回复

显然截图是网页,使用 HTML5 的 Canvas 实现的
imagick 和 GD 功能均比较简陋,虽能实现,达不到图示的精细效果
也做不到动态效果,因为生成的是图片
xuzuning 2015-11-25
  • 打赏
  • 举报
回复
示例
$url = 'https://img-bbs.csdn.net/upload/201511/22/1448188988_283004.png';
$src = imagecreatefrompng($url);

$im = imagecreatetruecolor(180, 230);
imagecopy($im, $src, 0, 0, 20, 300, imagesx($im), imagesy($im));

$ar = array(0,0, 0,240, 180,240, 180,0, 0,0, 10,10, 30,200, 150,120, 110,20, 10,10);
$c = imagecolorallocate($im, 0, 0, 0);
imagefilledpolygon($im, $ar, count($ar)/2, $c);
imagecolortransparent($im, $c);
imagegif($im);
vincent_hou_1982 2015-11-25
  • 打赏
  • 举报
回复
那么获取获取图片里的非透明部分来进行图片填充(正片叠底模式)呢?我可以把要填充的区域放在一个透明背景上。
xuzuning 2015-11-25
  • 打赏
  • 举报
回复
做不规则图形充填需要使用路径,Canvas 有,而 imagick 和 GD 都没有(imagick 的桌面工具中有的,但 php_imagick 扩展里没有) 通过不规则图形外充填透明色可以模拟实现,但是:位图有锯齿、真彩有色边。效果很差
vincent_hou_1982 2015-11-25
  • 打赏
  • 举报
回复
他这个不是Canvas做的,他们在服务器端有个桌面程序来负责处理图片然后返回处理好的图片地址给web,不过价格有点贵,我想看看能不能用其他方法来实现。
vincent_hou_1982 2015-11-24
  • 打赏
  • 举报
回复
好吧,自己顶一下。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧