提供商

Cloudinary

Nuxt Image 与 Cloudinary 紧密集成。

Cloudinary 和图像模块之间的集成。

如果您正在寻找更高级的 Cloudinary 使用或预构建组件,例如 VideoPlayer、OgImage 或 ProductGallery,请查看 Cloudinary 模块以获取 Nuxt,访问模块 文档 或 GitHub 存储库

要使用此提供商,您只需在 cloudinary 中指定项目的基址 URL。

nuxt.config.ts
export default defineNuxtConfig({
  image: {
    cloudinary: {
      baseURL: 'https://res.cloudinary.com/<your-cloud-name>/image/upload/'
    }
  }
})

远程图像

要处理远程图像数据,您可以使用 fetch上传

查看 cloudinary 文档 以了解两者之间的区别。

获取

nuxt.config.ts
export default defineNuxtConfig({
  image: {
    cloudinary: {
      baseURL: 'https://res.cloudinary.com/<your-cloud-name>/image/fetch/'
    }
  }
})
<NuxtImg provider="cloudinary" src="https://upload.wikimedia.org/wikipedia/commons/a/ae/Olympic_flag.jpg" width="300" height="200" />

注意:您需要配置您的“允许获取域”才能执行上述操作。

上传

nuxt.config.ts
export default defineNuxtConfig({
  image: {
    cloudinary: {
      baseURL: 'https://res.cloudinary.com/<your-cloud-name>/image/upload/<mapping-folder>'
    }
  }
})
<NuxtImg provider="cloudinary" src="/commons/a/ae/Olympic_flag.jpg" width="300" height="200" />

注意:您需要配置您的“自动上传映射”才能执行上述操作。

Cloudinary fit

除了 Nuxt 图像和 Nuxt 图片的 fit 属性的标准值 之外,Cloudinary 还提供了以下内容以获得额外的调整体验

  • minCover - 与 cover 相同,但只有在原始图像小于给定的最小值(宽度和高度)时才会调整大小。
  • minInside - 与 inside 模式相同,但只有在原始图像小于给定的最小值(宽度和高度)时才会调整大小。
  • coverLimit - 与 cover 模式相同,但只有在原始图像大于给定的限制(宽度和高度)时才会调整大小。
  • thumbnail- 使用人脸检测生成缩略图。
  • cropping - 用于从原始图像中提取给定的宽度和高度。原始比例保持不变。

查看 Cloudinary 调整大小模式文档 以了解更多详细信息。

Cloudinary 修饰符

除了 标准修饰符 之外,您还可以将以下 Cloudinary 特定的转换参数传递给 modifiers 属性。

Cloudinary 提供商会自动启用 自动格式选择自动质量选择 以获得最佳性能。

rotate

接受的值

  • 任何度数,或者
  • auto_right | auto_left | ignore | vflip | hflip

以特定度数旋转或翻转给定的资产,或者根据方向自动旋转或翻转。

roundCorner

将所需图像的指定角圆角化。如果只传递一个数字或 max(所有角都会被应用)。其他用例的语法如下

  • 使用 2 个值:top_left_bottom_right_radius:top_right_bottom_left_radius(示例:20:40
  • 使用 3 个值:top_left:top_right_bottom_left:bottom_right(示例:20:30:40
  • 使用 4 个值:top_left:top_right:bottom_left:bottom_right(示例:20:0:40:40
<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  height="169"
  :modifiers="{ roundCorner: 'max' }"
/>

gravity

确定要裁剪的图像部分或放置叠加的位置。接受的值:autosubjectfacesinkfaceCentermultipleFacesmultipleFacesCenternorthnorthEastnorthWestwestsouthWestsouthsouthEasteastcenter

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  height="300"
  fit="fill"
  :modifiers="{ gravity: 'subject' }"
/>

effect

在所需的资产上应用过滤器或效果。有关语法的完整列表和可用的效果,请参阅 图像效果

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  height="300"
  fit="fill"
  :modifiers="{ effect: 'grayscale' }"
/>

color

在使用文本标题、阴影效果和着色效果时要使用的颜色。

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  :modifiers="{ effect: 'colorize:50', color: 'red' }"
/>

flags

一个或多个标志,用于更改默认转换行为。有关更多信息,请参阅 图像标志

dpr

资产的目标设备像素比。 auto 表示自动匹配用户设备中的 DPR 设置。

opacity

调整所需图像的不透明度。比例:0 到 100(%)。

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  :modifiers="{ opacity: 50 }"
/>

overlay

在基本图像上方创建一个图层。这可以使用 xygravity 来自定义叠加的位置。

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="100"
  height="100"
  fit="thumb"
  :modifiers="modifiers"
/>

<script>
  export default {
    data() {
      return {
        modifiers: {
          gravity: 'north',
          overlay: 'text:default_style:Hello+World',
        }
      }
    }
  }
</script>

有关更多信息,请参阅 叠加文档

underlay

在部分透明图像下方创建一个图层。这可以使用 xygravity 来自定义叠加的位置。

transformation

要应用于资产的预定义命名转换。

zoom

fit='crop'fit='thumb' 一起使用,以决定使用人脸检测保留人脸周围原始图像/视频的多少。

index.vue
<template>
  <NuxtImg
    provider="cloudinary"
    src="/remote/nuxt-org/blog/going-full-static/main.png"
    width="100"
    height="100"
    fit="thumb"
    :modifiers="modifiers"
  />
</template>

<script>
  export default {
    data() {
      return {
        modifiers: {
          zoom: 0.75,
          gravity: "face"
        }
      }
    }
  }
</script>

colorSpace

要用于交付图像 URL 的颜色空间。有关接受的值的详细信息,请参阅 颜色空间文档

<NuxtImg
  provider="cloudinary"
  src="/remote/nuxt-org/blog/going-full-static/main.png"
  width="300"
  :modifiers="{ colorSpace: 'srgb' }"
/>

customFunc

在 Cloudinary 端调用自定义函数。有关更多详细信息,请参阅 自定义函数

density

在将矢量文件转换为图像格式时定义密度数。

aspectRatio

将资产裁剪或调整大小为新的纵横比,用于与确定如何将资产调整为新尺寸的裁剪/调整大小模式一起使用。

有关更多详细信息,请参阅 Cloudinary 图像转换 API