在Markdown中更改图片大小

1677

我刚刚开始使用Markdown。我很喜欢它,但是有一件事情让我很烦恼:我怎样才能使用Markdown更改图片的大小?

文档只给出了以下建议:

![drawing](drawing.jpg)

如果可能的话,我希望图片也居中。我要求一般的Markdown格式,而不仅限于GitHub的格式。


1
你应该真正修复被接受的答案,将其更改为HTML格式,因为当前的答案使用了不广泛支持的非标准markdown功能。 - VoteCoffee
1
那个 ! 是什么意思? - buhtz
2
@buhtz 这是为了区分普通的HTML链接 [text](URL) 和图片 ![alt text](image URL) - VonC
7
注意:GitLab 15.7+,2022年12月正式采用 ![alt text](image URL){width=x height=y} 约定。 - VonC
7
注意:GitLab 15.7+,2022年12月,正式采用 ![alt text](image URL){width=x height=y} 的约定。 - undefined
显示剩余3条评论
40个回答

20

在 Tieme 的回答基础上,如果你使用的是 CSS 3,你可以使用一个子字符串选择器

这个选择器将匹配任何带有 alt 标签以“-fullwidth”结尾的图片:

img[alt$="-fullwidth"]{
  width:  100%;
  display: block;
}

那么您仍然可以使用alt标签来描述图片的预期用途

上述内容的Markdown可能类似于:

![Picture of the Beach -fullwidth](beach.jpg)

我一直在Ghost markdown中使用这个,效果很不错。


1
同样在 kramdown+jekyll-3.1.2 上表现良好。 - C--
如果您不需要以全宽渲染图像,则最好直接在标签上放置像素大小(而不是使用CSS)。 - Nick McCurdy

18

如果您在GitHub Flavored Markdown中使用引用样式的图片:

Here is an image of tree: 
![alt text][tree]{height=400px width=500px}


[//]: # (Image References)
[tree]: ./images/tree.png "This is a tree"


4
这对我没用。提供的参考链接没有提到高度/宽度。 - Shubham Chaudhary
@ShubhamChaudhary 引用的链接展示了在_Github Flavored Markdown_中什么是“引用样式图片”。也许您没有引用样式图片或者正在使用另一种Markdown变体。 - zardosht
3
哦,你提供了一个链接来解释“参考样式”。在答案的上下文中,该链接没有涉及到 {height=100px width=100px} 的高度/宽度语法。 - Shubham Chaudhary

16
对于那些对rmarkdownknitr解决方案感兴趣的人,有一些方法可以在不使用html的情况下调整.rmd文件中的图像大小: 您只需添加 {width=123px} 来指定图像的宽度。不要在括号之间引入空格。
![image description]('your-image.png'){width=250px}

另一个选项是使用knitr::include_graphics

```{r, fig.cap="image description", out.width = '50%'}
knitr::include_graphics('your-image.png')
```

2
我怎样才能同时改变高度和宽度?特别是对于第一个选项。我尝试将高度和宽度放在同一组 {} 中,但失败了。分开的 {} 也无法实现。 - NelsonGon
2
@NelsonGon:我从来没有需要同时指定两者,因为当指定宽度时,高度也会自动按比例缩放。因此,我不知道是否可能以及如何实现。不过,这是一个好问题。 - symbolrush
2
谢谢,我后来想到可以这样做:{height=x width=y}。看起来这个语法不识别逗号,但是我可以指定其他属性,包括样式元素。 - NelsonGon

14

如果每个markdown文件中只有一张图片,控制图片大小的一种便利方式是:

添加以下css样式:

## Who Invented JSON?
`Douglas Crockford`

Douglas Crockford originally specified the JSON format in the early 2000s.
![Douglas Crockford](img/Douglas_Crockford.jpg)

<style type="text/css">
    img {
        width: 250px;
    }
</style>

输出结果如下: enter image description here

如果您在每个md页面中有更多的图片,那么控制每个图片或每个自定义标签的方便方法是在CSS中定义每个元素。 对于img标签的情况,我们可以这样做:

//in css or within style tags:
    img[alt="Result1"] {
    width: 100px;
    }

    img[alt="Result2"] {
    width: 200px;
    }
    img[alt="Result3"] {
    width: 400px;
    }

// try in md one of the methods shown below to insert image in your document:
 <br/>
<img src="https://istack.dev59.com/xUb54.webp" alt="Result1"> <br/>
<img src="https://istack.dev59.com/xUb54.webp" alt="Result2"> <br/>
<img src="https://istack.dev59.com/xUb54.webp" alt="Result3"> <br/>

<br/>

in md:<br/>
![Result1](img/res-img-1.png) <br/>

![Result2](img/res-img-2.png) <br/>

![Result3](img/res-img-3.png) 


14

对我来说,这个方法可行,虽然不是一行,但我希望它对你有用。

<div>
<img src="attachment:image.png" width="500" height="300"/>
</div>

1
<div><img src="attachment:image.png" width="500" height="300"/></div> - Bash Stack

14

我来到这里是为了寻找答案。这里有一些很棒的建议和黄金信息,指出markdown完全支持HTML!

一个好的干净解决方案总是使用纯HTML语法。使用标签。

但是我仍然想坚持使用markdown语法,所以我尝试将其包装在标签中,并在div标签内添加任何我想要的图像属性。它有效!!

<div style="width:50%">![Chilling](https://www.w3schools.com/w3images/fjords.jpg)</div>

这样就支持外部图片了!

只是想说一下,因为它没有在任何答案中提到。 :)


1
你不能在 HTML 中使用 Markdown,你需要用 <img src="link" alt="chilling"> 替换 ![chilling](link) - LuckyPants

13

对于所有寻找在 R markdown/ bookdown 中有效解决方案的人,以下是之前的一些解决方案是否有效或需要稍作修改:

有效

  • 添加{ width=50% }{ width=50% height=50% }

    • ![foo](foo.png){ width=50% }
    • ![foo](foo.png){ width=50% height=50% }

    • 重要提示:宽度和高度之间不用逗号 - 即 { width=50%, height=30% } 不起作用

  • 添加{ height="36px" width="36px" }

    • ![foo](foo.png){ height="36px" width="36px" }
    • 注意:加上冒号的{:height="36px" width="36px"},来自 @sayth 的建议,似乎在 R markdown 中无效

无效:

  • 在图形文件的 URL 后添加 =WIDTHxHEIGHT
    • 调整图像大小(如来自 @prosseek)
    • =WIDTHxHEIGHT=WIDTH 都不起作用,例如:![foo](foo.png =100x20)![foo](foo.png =250x)

13

1
好的。但这并不是一种通用的解决方案。 - Martin
正如@Martin所指出的,这并不是一个通用解决方案,但由于它是对这个问题的常见版本的解决方案,我认为在这里还是值得有的。 - aboy021

12

使用 kramdown 也可以使用这个:

markdown
![drawing](drawing.jpg)   
{:.some-css-class style="width: 200px"}
或者。
markdown
![drawing](drawing.jpg)   
{:.some-css-class width="200"}

通过这种方式,您可以直接向最后一个HTML元素添加任意属性。要添加类,有一种快捷方式.class.secondclass


12

Stack Overflow有类似的功能;请查看我在另一个答案上留下的评论以获取链接。https://dev59.com/A2Uq5IYBdhLWcg3wPd-r#ABbsnYgBc1ULPQZFmWTq - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接