- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 gatsby-image 来处理自动处理不同的图像大小。它工作得很好。
然而,在docs gatsby-image,一个例子使用 imageSharp
在 graphql 中获取不同的图像大小,而另一个示例使用 childImageSharp
.我很好奇这两者有什么区别?
我认为它与 gatsby-transformer-sharp
有关。或 gatsby-plugin-sharp
,但这些插件的文档也没有任何相关信息。
最佳答案
自从问这个问题已经有一段时间了,但我希望直接回答“imageSharp 和 childImageSharp 之间有什么不同”这个问题:imageSharp
之间的区别& childImageSharp
它们总是相同类型的节点,即 ImageSharp
.区别在于引用点。
在典型的 gatsby 博客中,所有文件将首先使用 gatsby-transformer-file-system
进行处理。 .每个文件都会得到一个节点,其中包含文件类型等信息,然后是一个像 gatsby-transformer-sharp
这样的插件。将选择具有相关类型/扩展名的节点,然后进一步处理它并创建一个新节点:
File image.png
|
create a node with
gatsby-transformer-file-system -> "type": "File",
"extension": "png"
|
whenever see a node
with a valid image extension,
gatsby-transformer-sharp -> create a node with
"type": "ImageSharp"
that contains info of images
processed by `gatsby-plugin-sharp`
File
之间创建父子关系。节点和
ImageSharp
节点。 child
ImageSharp
节点将在
File
上可查询名称为
childImageSharp
的节点.
File ImageSharp
|--id: 1 |--id: 2
|--children |--parent
| `--[ id: 2 ] | `--id: 1
`--childImageSharp |--fluid
|--id: 2 ...
|--fluid
...
ImageSharp
节点至少有两种方式:
ImageSharp
node 不包含有关其在文件系统中的位置的任何信息,因此如果您想从文件夹
src/X
中获取图像,你需要像这样查询:
query {
// relativePath is relative to the folder set in `gatsby-transformer-file-system`
file ( relativePath: { eq: "src/X"} ) {
childImageSharp {
id
fluid {
src
}
}
}
}
ImageSharp
id
ImageSharp 节点。您可以通过以下方式获取:
{
imageSharp (id: {eq: "2"}) { // not a real id
id
fluid {
src
}
}
}
allFile
查询多张图片, 或
allImageSharp
.
// error
{
childImageSharp {
id
}
}
childMardownRemark
File
上的节点类型,解析为
MarkdownRemark
节点。
gatsby-image
没有任何关系——这只是解析到同一个节点的不同方式。
关于 Gatsby 图像 : difference between childImageSharp vs imageSharp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141031/
如何使用 ImageSharp 库将图像转换为字节数组? ImageSharp 库也可以基于 EXIF 方向建议/提供 RotateMode 和 FlipMode 吗? 最佳答案 如果您希望将原始像素
我正在学习使用 ImageSharp 的教程 ( https://opentk.net/learn/chapter1/4-textures.html)。如何将类型“ImageSharp.Image”转
我的任务是创建要打印的图像。在图片上,我需要放置一个大写字母(大写,[A-Z])。 打印的图像尺寸可以在 15 厘米高度和 30 厘米高度之间变化(包括介于两者之间的任何尺寸)。 字母需要跨越打印图像
我正在尝试使用 Blazor 输入文件以及 Imagesharp 库将 IBrowserFile 转换为图像。 我的方法是这样的 public async Task ConvertFileToByte
我需要转换一些基于 System.Drawing 的代码才能使用此 .NET Core 兼容库: https://github.com/SixLabors/ImageSharp 下面基于 System
myImage.Mutate(i => i.Saturate(2).Resize(new ResizeOptions { Mode = ResizeMode.Crop, Position = Anch
在 ImageSharp 的帮助下加载图像然后将其加载到 vram 后,它只呈现一个白色四边形。我基本上不知道我做错了什么,这是第一次使用 opentk crossplatform 而不是 beein
如何使用 SixLabors.ImageSharp 获取图像格式? 在 1.0.0-alpha9-00152 版本中,我可以使用: Image image = Image.Load(GetBytesF
我正在使用 gatsby-image 来处理自动处理不同的图像大小。它工作得很好。 然而,在docs gatsby-image,一个例子使用 imageSharp在 graphql 中获取不同的图像大
我有一个 byte[],我想使用 ImageSharp 创建一个灰度图像图书馆。 这就是我目前的做法: byte[] arr = MnistReader.ReadTestData(); //this
我正在使用 ImageSharp (ver 1.0.0-beta0006) 在我的 .Net Core 2.2 项目中。我主要用它来调整图像大小(生成缩略图)并且它工作正常。 最近,我需要在图像上绘制
我正在尝试使用 ImageSharp.Web() 压缩图像(通常在 5-30 左右)质量/大小图书馆,我真的不明白我该怎么做或者我在这里缺少什么。 我可以重用相同的内存流/IFormFile 对象来保
我正在使用SixLabors.ImageSharp在 C# .NET Core 3.1 中以编程方式裁剪图像。您可以在下面找到一个有效的代码片段。 public static void ResizeI
我发现了一个 GitHub 问题,展示了如何通过将图像的 ExifProfile 设置为空来删除图像的 exif 数据: SixLabors.ImageSharp.Image image = Ima
我发现了一个 GitHub 问题,展示了如何通过将图像的 ExifProfile 设置为空来删除图像的 exif 数据: SixLabors.ImageSharp.Image image = Ima
是否有任何方法可以使用 ImageSharp 从 .net core2 中的某些 jpeg 创建 gif? 我可以使用 Magick.Net 从一些 jpeg 文件创建一个 gif,但它在 Linux
我正在尝试使用以下 graphQL 查询: { allMarkdownRemark( limit: 1000 ) { edges {
我正在尝试生成条形码图像。当我使用以下代码时,我可以创建一个 base64字符串,但它给出了一个空白图像。我检查了内容不是空白或空白。 有代码使用CoreCompat.System.Drawing但我
我是一名优秀的程序员,十分优秀!