开发者社区 问答 正文

图片裁剪之如何实现裁剪?


可以裁剪图片,指定裁剪的起始点以及裁剪的宽高来决定裁剪的区域。

参数


操作名称:crop

名称描述取值范围
w指定裁剪宽度[0-图片宽度]
h指定裁剪高度[0-图片高度]
x指定裁剪起点横坐标(默认左上角为原点)[0-图片边界]
y指定裁剪起点纵坐标(默认左上角为原点)[0-图片边界]
g设置裁剪的原点位置,由九宫格的格式,一共有九个地方可以设置,每个位置位于每个九宫格的左上角[nw,north,ne,west,center,east,ne]

裁剪原点位置参数示意图:


注意事项

  • 如果指定的起始横纵坐标大于原图,将会返回错误:BadRequest, 错误内容是:Advance cut’s position is out of image.
  • 如果从起点开始指定的宽度和高度超过了原图,将会直接裁剪到原图结尾。


使用示例

  • 裁剪图从起点(100, 50)到图的结束

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_100,y_50
  • 裁剪图从起点(100, 50)到裁剪100x100的大小

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_100,y_50,w_100,h_100
  • 裁剪图右下角200x200的大小

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_0,y_0,w_200,h_200,g_se
  • 裁剪图右下角200x200的大小,再往下10x10

http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_10,y_10,w_200,h_200,g_se

展开
收起
青衫无名 2017-10-23 10:42:09 5154 分享
分享
版权
举报
阿里云 AI 助理回答

阿里云图片处理与优化

问题描述: 用户希望了解如何通过指定裁剪的起始点以及裁剪的宽度和高度来精确裁剪图片,并获取相关参数的详细说明及使用示例。

操作步骤

  1. 确定裁剪参数:在进行图片裁剪时,您需要设置以下关键参数以决定裁剪区域:

    • w: 指定裁剪宽度,取值范围为0至图片原始宽度。
    • h: 指定裁剪高度,取值范围为0至图片原始高度。
    • x: 指定裁剪起点横坐标,默认以左上角为原点,取值范围为0至图片边界。
    • y: 指定裁剪起点纵坐标,默认以左上角为原点,取值范围为0至图片边界。
    • g: 设置裁剪的原点位置,可选值包括九宫格中的任意一个位置(如nw、north、ne等),以及特定算法定位如face(最大人脸)或auto(自动推荐尺寸)。
  2. 构造请求URL:根据上述参数,将裁剪指令添加到OSS图片URL后,格式如下:

    http://your-bucket-name.oss-region.aliyuncs.com/your-image-key?x-oss-process=image/crop,x_{x坐标},y_{y坐标},w_{宽度},h_{高度}[,g_{原点位置}]
    
  3. 执行裁剪操作:通过浏览器访问构造好的URL或在程序中发起HTTP GET请求,阿里云OSS会根据提供的参数实时处理图片并返回裁剪后的结果。

注意事项: - 坐标超出限制:如果指定的起始横纵坐标超出了原图范围,请求将失败并返回错误信息。 - 尺寸超过原图:若从指定起点开始的裁剪尺寸超过了原图的实际尺寸,裁剪将默认延伸至图片边缘。 - 原点选择:使用g参数时,确保所选原点能覆盖您期望裁剪的区域,特别是当使用faceauto时,需事先绑定IMM Project并具备相应权限。

使用示例

  • 裁剪从起点(100, 50)到图片结束:

    http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_100,y_50
    
  • 裁剪从起点(100, 50)且尺寸为100x100像素:

    http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_100,y_50,w_100,h_100
    
  • 裁剪右下角200x200像素大小:

    http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_0,y_0,w_200,h_200,g_se
    
  • 裁剪右下角偏移10x10像素后的200x200大小:

    http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,x_10,y_10,w_200,h_200,g_se
    

以上示例展示了如何灵活运用裁剪参数实现自定义图片裁剪功能。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: