在使用 DatoCMS Headless CMS 的过程中,有时候需要对上传的图片进行裁剪,但是默认情况下,DatoCMS 不会按比例裁剪图片,导致最终效果与预期不一致。本文将介绍解决 DatoCMS 图片按比例裁剪问题的方法。
1. 了解 DatoCMS 图片 API
DatoCMS 提供了图片 API,通过调用 API 可以获取裁剪后的图片。例如:
<img src="https://www.datocms-assets.com/12345/56789/my-image.png?w=300&h=200&fit=fill">
其中,w 和 h 分别代表宽度和高度,fit 指定了裁剪模式,fill 表示按比例裁剪并填充满指定的宽度和高度。还有其他的裁剪模式,具体可参考 DatoCMS 图片 API 文档。
2. 使用 GraphQL 查询
使用 DatoCMS 的 GraphQL API 可以更方便地获取裁剪后的图片。例如:
-- -------------------- ---- ------- ----- -------- ----- -------- ----- - ----------- - ----- ----- - ---------------- ------------ - -- ------- -- -------- ---- ------ -- ------ ------------ ------ ------ ------ - - ------ ---------- ----- --- ----- ------ --- ----- ----------- - - - -
其中,width 和 height 分别代表宽度和高度,fit 指定了裁剪模式,这里使用了 fill
模式,还可以使用其他的裁剪模式。sizes 是可选的,这里设置展示尺寸。
3. 前端实现
在前端实现中,可以使用 gatsby-image 库来显示裁剪后的图片。例如:
-- -------------------- ---- ------- ------ - -------- ----------- - ---- -------- ------ ------- -------- ------------- ---- -- - ----- ------- - ------------------- ------ - ----- ------------------------ ------------ ------------------------------------- ----------------------- --------------------------- -- ------ - - ------ ----- ----- - -------- ---------- -------- ------- ----- -------- ----- - ------------------- - --- - --- --- - -- - ----- ----- - --- ----- ---------------- ------------ - -- ------- -- -------- ---- ------ - ------ ------------ ------ ------ ------ - - --------------------- - - - - -
其中,GatsbyImage 是用来显示图片的组件,image 和 alt、title 属性分别对应 GraphQL 查询结果中的 responsiveImage、alt 和 title 字段。
总结
DatoCMS 提供了图片 API 和 GraphQL API,可以方便地获取裁剪后的图片。在前端实现中,可以使用 GatsbyImage 库来显示裁剪后的图片。通过本文所介绍的方法,可以解决 DatoCMS 图片按比例裁剪问题,提高图片的展示效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fa86ccf6b2d6eab317409e