分享一段工具型代码:印章抠图

本文分享了一段使用PHP Laravel框架实现的印章抠图代码,通过调整RGB参数,可以将白底红字的印章变为透明背景,保留红色印章部分,达到类似PS的抠图效果。代码可能存在bug,适合初步测试,实际应用前需进一步优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

能将白底红字的印章抠出来,用的是php,框架是laravel,其他框架请自行调节。扣其他颜色也可以,把里面的那段rgb参数判断改改就行了,最后抠出来的效果就是白底变透明,然后只留下红色的章,放在其他页面上就能形成盖章的效果了。代码自己写的,可能有bug,但是做做测试还是ok的,用到工作上的话请自行测试和优化。(在我自己测试对比下,能做到和PS差不多的抠图效果)

function getStamp(){
    $path = storage_path('2018052411173848180.png');
    $image = file_get_contents($path);


    $info = getimagesize($path);
    $im = imagecreatefromstring($image);
    $width = $info[0];
    $height = $info[1];
    for($i=0;$i<$height;$i+=1){
        for($j=0;$j<$width;$j+=1){
            $rgb = ImageColorAt($im, $j, $i);
            $r = ($rgb >> 16) & 0xFF;
            $g = ($rgb >> 8) & 0xFF;
            $b = $rgb & 0xFF;
            echo $r.'.'.$g.'.'.$b.'.='.$rgb.'<br>x='.$j.', y='.$i.'<br>';

            if(intval($r)>220 && $g >220 && $b>220){
                $hex = imagecolorallocate($im, 255, 255, 255);
                imagesetpixel($im,$j, $i, $hex);
            }
        }
    }
    $white = imagecolorallocate($im , 255 , 255 , 255);//拾取白色
    imagefill($im , 0 , 0 , $white);//把画布染成白色
    imagecolortransparent($im , $white ) ;//把图片中白色设置为透明色

    imagepng($im , storage_path('test2.png'));//生成图片

    return false;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值