首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

带你用 Python + 人脸识别自动裁剪头像

在这篇文章的最后,我们留下了一个需求:将剧照中的人物裁剪为圆形头像,美化关系图。 也就是把这种干巴巴的图变的图文并茂一点: ? ?...如果想要裁剪圆形头像只需要三步: 1、插入图片 2、裁剪图片,根据需要裁剪头像范围,并设置横纵比例为1:1, ? ?...3、裁剪完成后再次选择裁剪图片-裁剪为形状-椭圆,即可完成圆形头像制作,最后另存为图片即可。 ? ?...利用 Python 实现裁剪圆形头像分为以下步骤: 1、利用人脸识别接口确定人脸在图片中的位置 2、计算出需要裁剪的区域 3、利用 PIL 库进行裁剪 人脸识别的提供功能很丰富,像我们之前使用到的颜值打分...小结: 在这篇文章中,我们介绍了使用 PPT 裁剪圆形头像的方法,并学习了如何通过 Python 自动化批量裁剪圆形头像

3.8K30

Android基于PhotoView实现的头像圆形裁剪控件

前言 常见的图片裁剪有两种,一种是图片固定,裁剪框移动放缩来确定裁剪区域,早期见的比较多,缺点在于不能直接预览裁剪后的效果;还有一种现在比较普遍了,就是裁剪框固定,直接拖动缩放图片,便于预览裁剪结果。...一般来说,做图片裁剪的思路无外乎是先监听手势,获取坐标,再对图片变形,最后确定裁剪区域的坐标对位图进行裁剪,最后保存图片到本地。...先简要介绍一下设计思路,如上图所示,主要分为两部分,上层是遮罩(也可以理解为是裁剪框),用于预览裁剪后的效果;下层是PhotoView,这里多包了一层改为正方形显示。...而对位图进行裁剪时,是基于原图像素的。...所以在裁剪的过程中,需要把位移量再放大25/9倍进行还原。

1.2K20

Android实现头像上传功能

之前做这个头像上传功能还是花了好多时间的,今天我将我的代码分享给大家先看效果图 首先看上传图片的工具类,一点都没有少复制就可以用 ** * Created by Administrator on 2016...Environment.getExternalStorageDirectory(), "hand.jpg"))); startActivityForResult(intent, CAMERA_REQUEST); } 调用系统裁剪工具裁剪图片.../**** * 调用系统自带切图工具对图片进行裁剪 * 微信也是 * * @param uri */ private void photoClip(Uri uri) { // 调用系统中自带的图片剪裁...(filepath, fileKey, "上传头像的地址", params); Toast.makeText(this, "上传成功", Toast.LENGTH_LONG).show(); } 重新服务器响应方法...(photo); } } break; } } 源码下载:Android实现头像上传功能 以上就是本文的全部内容,希望对大家的学习有所帮助。

1.8K31

上传图片马遇到裁剪后的GETSHELL

起因 一哥们丢来一个站,IIS7.5解析漏洞,但是头像上传后解析没用,给红包让帮忙getshell。 当时吧,我以为他是小白到不知道如何 copy 图片马呢,所以跟他说能搞定。。。 尝试 ?...经过一番摸索尝试,发现当上传完图片后,是不知道上传的图片地址的,所以必须要经过裁剪裁剪后才能得到图片的物理路径,而经过裁剪后呢, 图片的内容被改的面目全非,这也就导致我们copy的图片马失败告终。。...本来想的是随便在找个上传点,这种站应该上传点多。。。 结果发现等级不够,需要作者才能上传作品。。好吧,最终我们只有看这个头像上传了。。...尝试将PHP代码插入图片的不同位置,然后上传,发现还是失败,下载裁剪后的图片看了看,发现真的面目全非。。。...注意我上图中我箭头所指,他是用了GD库对图片进行了处理,所以这里我们用大佬的方法: 上传一张正常图片,然后将上传的经过裁剪的图片在下载回本地电脑。

1.8K20

Android Kotlin仿微信头像裁剪图片的方法示例

整个效果就是从图库选取一张图片,并进行裁剪,从图库选取没什么好说的,就说说怎么做的裁剪控件吧,这个裁剪控件就是ClipImageView,可以看到它有一个阴影遮罩,一个透明的框,还有图片的显示,以及可以移动图片...drawMask方法和drawRect方法是用来绘制遮罩层和裁剪框的,其中遮罩层就是四个方形,而裁剪框就是一个矩形的外框。...最后就是裁剪图片了 inner class SaveTask(private val filePath: String) : AsyncTask<Unit, Unit, Unit () { override...outputStream) outputStream.close() } catch (e: IOException) { e.printStackTrace() } } 可以看到启动了一个AsyncTask用来裁剪和保存...Bitmap,其中saveClipImage就是重新构建了一个画布,并传入bitmap,重新调用draw方法,将数据信息保存到bitmap,然后裁剪bitmap并存入文件。

1K41

前端:选取、预览、裁剪上传、断点续传,关于图片上传那点事

04 — 裁剪 实现选取、裁剪图片部分区域的功能。...;有时候单纯为了追求上传速度,希望将浏览器 6 个并发连接跑满,所以也希望实现分片上传。...chunks.push(blob);//保存分段数据 }}else{ chunks.push(file.slice(0));} 截段之后,还需要一个 js-spark-md5 类库: https...://github.com/satazor/js-spark-md5 这是一个在本地就可以给 Blog 对象签名生成唯一标识的类库,只要上传的是同一个文件,只要分段大小一致,网络断了再次上传,生成的标识也是一样的...每次上传完一个切片,就将标识存储在本地,页面刷新后先看看本地哪些分片已经上传过了。 — END — 2019 年冬天于北京 ---- ▼ 往期精选 ▼ JS是如何计算 1+1=2 的?

1.4K40
领券