开发者社区 问答 正文

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


可以将图片分成多个区域,按照区域进行裁剪。

参数

名称描述取值范围
rc用户可以指定对某一个区域进行裁剪。在这里把图片分成9个区域。 参数格式:<width>x<height>-<pos>rc.jpg width 指的是裁剪的宽度[0, 4096]Height 指的是裁剪的高度[0, 4096]pos指的是裁剪区域,取值范围是[1,9],默认是左上角,区域数值对应表见下图如果想裁剪左上角,宽度是100, 高度是200的区域,参数是:100x200-1rc如果想裁剪左上角,宽度是100,高度是图片的原高度参数是:100x0-1rc 或者100x-1rc如果高度或者宽度不填,或者参数是0,或者参数大于原图。默认是按原图的高度或宽度返回。width, height的范围是[1,4096]

[backcolor=transparent]区域数值对应表


注意事项

  • 如果不指定格式,原图将默认转换成jpg格式,如果原图是png, webp, bmp可能会导致图出现变形。详细可以查看质量变换格式转换
  • 如果从起点开始指定的宽度和高度超过了原图,将会直接裁剪到原图结尾。


示例

  • 裁剪原图左上区域宽度100高度200的区域

http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg@100x200-1rc

展开
收起
青衫无名 2017-10-23 11:11:35 1998 分享 版权
阿里云 AI 助理回答

阿里云图片处理与优化

如何进行图片的区域裁剪

阿里云图片处理服务支持按照指定区域对图片进行裁剪,允许用户灵活地处理图像内容。以下是进行图片区域裁剪的详细指南:

  1. 参数配置

    • rc参数:用于指定裁剪的区域和尺寸。格式为<width>x<height>-<pos>rc
      • <width>: 指定裁剪宽度,取值范围为[0, 4096]像素。若不填或为0,默认使用原图宽度。
      • <height>: 指定裁剪高度,取值范围为[0, 4096]像素。若设置为0或-1,表示高度为原图高度;若不填或超出原图高度,同样默认为原图高度。
      • <pos>: 指定裁剪区域的位置,取值为[1, 9],对应图片分割成的9个区域(如下图所示)。默认裁剪左上角(位置1)。
  2. 区域数值对应表(请参照知识库原文中的图表理解各位置编号)。

  3. 注意事项

    • 若未指定输出格式,原图将被转换为JPG格式,可能导致非JPG格式原图(如PNG、WebP、BMP)在转换过程中出现质量损失或变形。详情可参考质量变换及格式转换文档。
    • 裁剪时,如果指定的裁剪框超出了原图边界,实际裁剪范围将限制在原图范围内。
  4. 示例

    • 要裁剪原图左上角宽100px、高200px的区域,请求链接应为:http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg@100x200-1rc
  5. 常见问题

    • 错误请求格式:确保rc参数正确无误,避免重复或多余的参数,如100x100x100-1rc100x100-1rc-1rc是不规范的。
    • 索引超出范围:当指定的区域位置<pos>超出[1, 9]范围,或宽度、高度超出允许范围时,将按原图返回。

通过遵循上述步骤和注意事项,您可以有效地利用阿里云图片处理服务对图片进行精确的区域裁剪操作。

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