经常开发项目的小伙伴可能经常为图片裁切而犯愁,不是因为裁切图片的技术有多么复杂,而是因为单纯的图片裁切指令往往会把图片裁切的不仅很难看,当遇到人物人脸或者图像重点信息不在图像中央的时候,很容易把重要的信息裁切掉,甚至人脸会被裁切成两半。
菠菜园图像智能裁切工具的特点:
1、智能人像识别:当需要裁切的图像中包含人物头像的时候,会根据需要裁切的目标图像大小,自动将人物头像设置为重点区域,避免被裁切掉。
2、自动识别其他重要信息:当需要裁切的图像中不存在人物头像的时候,会自动识别图像中重要信息,并根据大小裁切掉不重要的部分。
3、支持水印功能。(水印功能暂不开放)
裁切效果演示:
我从昵图网上随机找了一个美女的图像,图像地址为:http://pic30.nipic.com/20130606/7447430_175843144000_2.jpg,图像大小约为1024*683。
经过接口裁切后的效果如下:
上面测试裁切后的图像大小为500*400,好了下面波波将介绍该接口的使用方法。
使用方法:
1、请求方法:GET
2、请求参数:
img:图片路径,你需要裁切的原图像。
w:图像宽度,裁切后图像的宽度。
h:图像高度,裁切后图像的高度。
3、示例请求:
- http://api.zkii.net/img_cut.php?img=http://pic30.nipic.com/20130606/7447430_175843144000_2.jpg&w=500&h=400
4、返回数据示例:
- {
- "code":10000,
- "reason":"成功",
- "imgdata":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYF
- BgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAGQAfUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA"
- }
为了节约用电,上面返回的BASE64加密图像只是象征性的展示了一部分,完整的太长了。但你要知道返回数据由三部分构成。
5、返回数据解释:
返回数据是一个数组,其中【code】表示操作码,只有返回10000时表示图片裁切成功,其他任何返回码均表示裁切失败。【reason】表示成功或失败原因。成功时返回“成功”如上面返回示例一样,失败时则是失败的原因。【imgdata】表示裁切后的图像数据,该数据是经过BASE64转码的,如果你想偷懒的话可以直接在前端页面中用"<img src='data['imgdata']' width='500' height='400'>"类似这样的写法,如果你想把裁切后的图像保存在本地服务器,那么你可以通过BASE64图片流转存图片即可,相关代码参考:《PHP:Base64文件流转图片》
今天的分享就到这里,敬请关注菠菜园博客。大家在开发中有需要的接口或者大家有其他成熟的接口也可以进行分享哈~