Modifica delle dimensioni dell'immagine in Markdown


920

Ho appena iniziato con Markdown. Lo adoro, ma c'è una cosa che mi infastidisce: come posso cambiare la dimensione di un'immagine usando Markdown?

La documentazione fornisce solo il seguente suggerimento per un'immagine:

![drawing](drawing.jpg)

Se è possibile, vorrei che anche l'immagine fosse centrata. Chiedo Markdown generale, non solo come fa GitHub.


11
Suggerisco di cambiare la risposta accettata al codice compatibile con la maggior parte degli interpreti markdown (questo, a mio avviso, stackoverflow.com/a/21972032/463225 ).
WattsInABox,

Possibile duplicato dell'immagine centrale
iNet

Microsoft ha una nota sulla sua pagina per la sintassi di Markdown:! La sintassi per supportare il ridimensionamento delle immagini è supportata solo nelle richieste pull e nel Wiki. docs.microsoft.com/en-us/vsts/project/wiki/… Non sono sicuro che questo commento di sintassi sia valido per tutti i markdown o solo per VSTS.
Joe B,

Risposte:


501

Con alcune implementazioni di Markdown (inclusi Mou e Marked 2 (solo macOS)) è possibile aggiungere =WIDTHxHEIGHTdopo l'URL del file grafico per ridimensionare l'immagine. Non dimenticare lo spazio prima del =.

![](./pic/pic1_50.png =100x20)

Puoi saltare ALTEZZA

![](./pic/pic1s.png =250x)

22
nota inoltre che non puoi avere uno spazio dopo '='. buono: "! [] (./ pic / pic1s.png = 250x)", cattivo: "! [] (./ pic / pic1s.png = 250x)"
cantdutchthis,

17
Non nello standard, quindi non funziona con tutti i parser Markdown
Marius Soutier,

19
Non sembra funzionare con Redcarpet, che uso con Jekyll, quindi andrei con HTML, come ha risposto @Tieme. Se finisci per eseguire Markdown attraverso un parser a cui piace lo standard, l'HTML si alzerà.
user766353,

7
non funziona anche nel wiki di Bitbucket. viene erroneamente convertito titlenell'attributo.
RZKY,

6
Non funziona, ma l'HTML <img src = http // ... width = "..." height = "..."> funziona.
BK Batchelor,

981

Potresti semplicemente usare un po 'di HTML nel tuo Markdown:

<img src="drawing.jpg" alt="drawing" width="200"/>

O tramite styleattributo ( non supportato da GitHub )

<img src="drawing.jpg" alt="drawing" style="width:200px;"/>

Oppure potresti usare un file CSS personalizzato come descritto in questa risposta su Markdown e allineamento dell'immagine

![drawing](drawing.jpg)

CSS in un altro file:

img[alt=drawing] { width: 200px; }

42
L'uso in linea stylenon funziona nella maggior parte dei siti Web (ad es. GitHub) e verrà sanificato. Preferisci widthe heightinvece come indicato da @kushdillip.
Ciro Santilli 22 冠状 病 六四 事件 法轮功

2
La soluzione basata sull'attributo alt è pessima e non dovresti usarla, interrompe l' accessibilità .
Regnareb,

L'alt in markdown inserisce una didascalia, l'alt in html fa qualcosa di completamente diverso (inserisci il testo se la figura non può essere caricata).
Julien Colomb,

Funziona su Github con attributo larghezza.
Shital Shah,

Stavo mettendo un'immagine in una tabella e ha funzionato meglio da usare max-widthinvece per garantire che le immagini non fossero schiacciate
kashiraja

326

La risposta accettata qui non funziona con nessun editor Markdown disponibile nelle app che ho usato fino ad oggi come Ghost, Stackedit.io o anche nell'editor Stack Overflow. Ho trovato una soluzione alternativa qui nel tracker dei problemi StackEdit.io .

La soluzione è utilizzare direttamente la sintassi HTML e funziona perfettamente:

<img src="http://....jpg" width="200" height="200" />

Spero che questo possa essere d'aiuto.


11
Questo ha funzionato alla grande per me! Inline CSS non funzionava con GitHub Markdown ma gli attributi di altezza / larghezza della "vecchia scuola" funzionavano bene.
Nicholas Kreidberg,

La cosa buona è che funziona anche se stai cercando di utilizzare un visualizzatore markdown per i file locali in un'estensione / componente aggiuntivo del browser.
code_dredd

1
A Github piace questo.
Teoman Shipahi,

1
tu rock man! ora funziona per me
Wesin Alves,

Questo è fantastico tranne che nei miei notebook ipython su github.
eric

129

Usa solo:

<img src="Assets/icon.png" width="200">

invece di:

![](Assets/icon.png)

1
La maggior parte delle implementazioni di Markdown ha una sintassi modificata per questo, quindi non è necessario inserire il tag HTML grezzo, ma questa è la cosa giusta da fare se l'implementazione che stai utilizzando non ne ha una.
Nick McCurdy,

1
genio insanguinato! lavora per GitHub =)))
Victor R. Oliveira il

Questo è compatibile in github
thanos.a

Grazie per averlo reso semplice e il cambiamento evidente.
Marcy,

67

Se stai scrivendo MarkDown per PanDoc, puoi farlo:

![drawing](drawing.jpg){ width=50% }

Questo aggiunge style="width: 50%;"al codice HTML <img>tag o [width=0.5\textwidth]per \includegraphicsin LaTeX.

Fonte: http://pandoc.org/MANUAL.html#extension-link_attributes


1
È persino più bello che specificare direttamente la dimensione in punti. Sono contento che questo sia l'approccio scelto da Pandoc!
jciloa,

2
@ m0z4rt GitHub probabilmente non usa PanDoc per eseguire il rendering di MarkDown.
Rudolfbyker,

63

Forse questo è cambiato di recente, ma i documenti di Kramdown mostrano una soluzione semplice.

Dai documenti

Here is an inline ![smiley](smiley.png){:height="36px" width="36px"}.

And here is a referenced ![smile]

[smile]: smile.png
{: height="36px" width="36px"}

Funziona su github con Jekyll e Kramdown.


7
Potrebbe aver funzionato in passato ma non funziona ora su Github. L'aggiunta di un tag <img> vecchio stile con larghezza e altezza funziona ancora.
piratemurray,

2
Questa è la soluzione migliore se stai usando Kramdown o Jekyll (che usa Kramdown per impostazione predefinita).
Nick McCurdy,

2
Gli attributi di blocco come mostrato qui sono una buona opzione con kramdown. La sintassi qui è leggermente sbagliata, il che potrebbe essere il motivo per cui @piratemurray sta avendo problemi. Dovrebbe essere {: height=36 width=36}; questo genera attributi HTML, quindi non dovrebbe avere il pxsuffisso. In alternativa, puoi usare css con {: style="height:36px; width:36px"}.
Quantum7,

Funziona per jekyll! grazie. Non ho nemmeno bisogno di altezza e larghezza, ne basta solo uno. ![alt text](image.png){:height="36px" }
Matthias,

1
Ho dovuto apportare una piccola modifica per farlo funzionare correttamente in Jekyll. Questa risposta durante la scrittura genera HTML non valido, poiché gli attributi widthe heightincludono la parte "px". Per me dovevo usare{:height="36" width="36"}
Maximillian Laumeister il

23

Si potrebbe attingere altall'attributo che può essere impostato in quasi tutte le implementazioni / rendering Markdown insieme ai selettori CSS basati sui valori degli attributi. Il vantaggio è che si può facilmente definire un intero set di dimensioni dell'immagine diverse (e ulteriori attributi).

Markdown:

![minipic](mypic.jpg)

CSS:

img[alt="minipic"] { 
  max-width:  20px; 
  display: block;
}


13
Questo è un uso improprio dell'attributo alt e fa male all'accessibilità.
sbuck

2
Sì, è un hack MA sembra ancora essere l'unica cosa che funziona su tutti i gusti di Markdown. +1 per sottolinearlo (le persone che usano gli screen reader hanno problemi con questo diritto? Avranno anche problemi con tutti quelli che non si preoccupano di usare alt nel modo giusto).
petermeissner,

20

Sostituisci ![title](image-url.type)con<img src="https://image-url.type" width="200" height="200">


17

Se stai usando kramdown , puoi farlo:

{:.foo}
![drawing](drawing.jpg)

Quindi aggiungi questo al tuo CSS personalizzato :

.foo {
  text-align: center;
  width: 100px;
}

3
Consiglio di non impostare la larghezza solo nei CSS. È utile dire al browser quanto sarà grande l'elemento immagine prima che l'immagine e il foglio di stile vengano caricati in modo che possa ottimizzare il layout degli elementi intorno all'immagine senza fare un riflusso.
Nick McCurdy,

13

Partendo dalla risposta di Tiemes, se stai usando CSS 3 puoi usare un selettore di sottostringa :

Questo selettore abbinerà qualsiasi immagine con un tag alt che termina con '-fullwidth':

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

Quindi è ancora possibile utilizzare il tag alt per lo scopo previsto per descrivere l'immagine.

Il Markdown per quanto sopra potrebbe essere qualcosa di simile:

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

Ho usato questo nel markdown di Ghost e ha funzionato bene.


1
Funziona perfettamente anche su kramdown + jekyll-3.1.2.
Sottomarino Sebastian

Se non è necessario eseguire il rendering dell'immagine alla massima larghezza, è meglio inserire la dimensione dei pixel direttamente sul tag (non con CSS).
Nick McCurdy,

13

Combinando due risposte sono uscito con una soluzione, che potrebbe non sembrare così carina,
ma funziona!

Crea una miniatura con una dimensione specifica che è possibile fare clic per visualizzare l'immagine con risoluzioni massime.

[<img src="image.png" width="250"/>](image.png)

Ecco un esempio! L'ho provato su Visual Code e Github. Esempio di markdown


1
Eccellente. Funziona con GitLab Enterprise.
Sven Haile,

10

Sono venuto qui alla ricerca di una risposta. Alcuni fantastici suggerimenti qui. E le informazioni sull'oro che sottolineano che il markdown supporta completamente HTMl!

Una buona soluzione pulita è sempre quella di utilizzare la sintassi HTML pura. Con il tag.

Ma stavo cercando di attenermi ancora alla sintassi del markdown, quindi ho provato a racchiuderlo attorno a un tag e ho aggiunto tutti gli attributi che volevo per l'immagine all'interno del tag div. E FUNZIONA !!

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

Quindi in questo modo sono supportate le immagini esterne!

Ho solo pensato di pubblicarlo perché non è presente in nessuna delle risposte. :)


1
Non puoi inserire markdown all'interno di HTML, dovrai sostituirlo ![chilling](link)con <img src="link" alt="chilling">.
Charl Kruger,

10

Per coloro che potrebbero interessare anche un rmarkdowne knitrsoluzione. Esistono alcuni modi per ridimensionare le immagini in un .rmdfile senza l'uso di html:

Puoi semplicemente specificare una larghezza per un'immagine aggiungendo {width=123px}. Non introdurre spazi bianchi tra le parentesi:

![image description]('your-image.png'){width=250px}

Un'altra opzione è utilizzare knitr::include_graphics:

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

2
Come posso modificare sia l'altezza che la larghezza? Per la prima opzione in particolare. Ho provato a mettere altezza e larghezza nello stesso {}ma non ci sono riuscito. Anche {}i fallimenti separati .
Nelson Gon,

2
@NelsonGon: non ho mai avuto bisogno di specificare entrambi, poiché anche l'altezza si ridimensiona, quando viene specificata la larghezza. Pertanto non so se ciò sarebbe possibile e come raggiungerlo.
Bella

2
Grazie, ho dato capito che posso fare in questo modo: {height=x width=y}. Sembra che questa sintassi non riconosca le virgole ma potrei specificare altri attributi tra cui gli elementi di stile.
NelsonGon,


9

So che questa risposta è un po 'specifica, ma potrebbe aiutare gli altri bisognosi.

Poiché molte foto vengono caricate utilizzando il servizio Imgur , è possibile utilizzare l'API dettagliata qui per modificare le dimensioni della foto.

Quando si carica una foto in un commento di un problema di GitHub, verrà aggiunta tramite Imgur, quindi ciò sarà di grande aiuto se la foto è molto grande.

Fondamentalmente, invece di http://i.imgur.com/12345.jpg , dovresti inserire http://i.imgur.com/12345m.jpg per immagini di medie dimensioni.


7

Puoi usare questo anche con kramdown:

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

o

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

In questo modo è possibile aggiungere direttamente attributi arbitrari all'ultimo elemento html. Per aggiungere classi c'è un collegamento .class.secondclass .


5

Questo funziona per me non è in una riga ma spero che funzioni per te.

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

Questo è HTML, non Markdown ...
MappaM

4

Per R-Markdown, nessuna delle soluzioni di cui sopra ha funzionato per me, quindi ho optato per la sintassi LaTeX normale , che funziona perfettamente.

\begin{figure}
 \includegraphics[width=300pt, height = 125 pt]{drawing.jpg}
\end{figure}

Quindi è possibile utilizzare ad esempio l' \begin{center}istruzione per centrare l'immagine.


1
+1, ma meglio subito \centeringdopo \begin{figure}o niente, se usi `\ includegraphics [larghezza = \ linewidth] {drawing.jpg}` che penso che dovrebbe essere l'output pandoc predefinito almeno quando l'immagine è più larga del testo.
Fran,

4

C'è modo con aggiungere classe e stile CSS

![pic][logo]{.classname}

quindi annota il link e il css di seguito

[logo]: (picurl)

<style type="text/css">
    .classname{
        width: 200px;
    }
</style>

Riferimento qui


4

Per tutti coloro che cercano soluzioni che funzionano con il markdown / bookdown R , queste delle soluzioni precedenti non funzionano o non richiedono un leggero adattamento:

Lavorando

  • Aggiungi { width=50% }o{ width=50% height=50% }

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

    • Importante: nessuna virgola tra larghezza e altezza - cioè { width=50%, height=30% } non funzionerà !

  • Aggiungere { height="36px" width="36px" }

    • ![foo](foo.png){ height="36px" width="36px" }
    • Nota: {:height="36px" width="36px"} con i due punti, come da @sayth, sembra non funzionare con il markdown R.

Non funziona:

  • Aggiungere =WIDTHxHEIGHT
    • dopo l'URL del file grafico per ridimensionare l'immagine (come da @prosseek)
    • =WIDTHxHEIGHT ![foo](foo.png =100x20)=WIDTHsolo ![foo](foo.png =250x)lavoro

4

Se stai usando immagini di stile di riferimento di Github :

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


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


3

L'aggiunta di dimensioni relative all'URL di origine verrà visualizzata nella maggior parte dei renderer Markdown.

Lo abbiamo implementato in Corilla poiché ritengo che il modello segua le aspettative dei flussi di lavoro esistenti senza spingere l'utente a fare affidamento sull'HTML di base. Se il tuo strumento preferito non segue uno schema simile, vale la pena inoltrare una richiesta di funzionalità.

Esempio di sintassi:

![a-kitten.jpg](//corilla.com/a-kitten-2xU3C2.jpg =200x200)

Esempio di gattino:

gattino


Un peccato che al momento non funzioni su GitHub, ma suggerirei comunque di inoltrare una richiesta di funzionalità.
ddri

3

Ridimensionamento degli allegati delle immagini Markdown nel quaderno Jupyter

Sto usando il jupyter_core-4.4.0notebook & jupyter.

Se stai allegando le tue immagini inserendole nel markdown in questo modo:

![Screen%20Shot%202019-08-06%20at%201.48.10%20PM.png](attachment:Screen%20Shot%202019-08-06%20at%201.48.10%20PM.png)

Questi attachmentcollegamenti non funzionano:

<img src="attachment:Screen%20Shot%202019-08-06%20at%201.48.10%20PM.png" width="500"/>

FARE QUESTO . Questo fa il lavoro.

Aggiungi solo parentesi div.

<div>
<img src="attachment:Screen%20Shot%202019-08-06%20at%201.48.10%20PM.png" width="500"/>
</div>

Spero che sia di aiuto!


3

Per riferimento futuro:

L'implementazione di Markdown per Joplin consente di controllare le dimensioni delle immagini importate nel modo seguente:

<img src=":/7653a812439451eb1803236687a70ca" width="450"/>

Questa funzione è stata richiesta qui e, come promesso da Laurent, è stata implementata.


Mi ci è voluto un po 'per capire la risposta specifica di Joplin.


2

Quando uso Flask (lo sto usando con pagine piatte) ... Ho scoperto che abilitare esplicitamente (non era di default per qualche motivo) 'attr_list' nelle estensioni all'interno della chiamata a markdown fa il trucco - e quindi si possono usare gli attributi (molto utile anche per accedere a CSS - class = "my class" per esempio ...).

FLATPAGES_HTML_RENDERER = prerender_jinja

e la funzione:

def prerender_jinja(text):
    prerendered_body = render_template_string(Markup(text))
    pygmented_body   = markdown.markdown(prerendered_body, extensions=['codehilite', 'fenced_code', 'tables', 'attr_list'])
    return pygmented_body

E poi in Markdown:

![image](https://octodex.github.com/images/yaktocat.png "This is a tooltip"){: width=200px}


1

Se la modifica del markdown iniziale non è un'opzione per te, questo trucco potrebbe funzionare:

newHtml = oldHtml.replace(/<img/g, '<img height="100"');

Ho usato questo per essere in grado di ridimensionare le immagini prima di inviarle in un'e-mail (poiché Outlook ignora qualsiasi stile di immagine CSS)


1

La risposta di Tieme è la migliore per la maggior parte dei casi.

Nel mio caso, sto usando pandoc per convertire markdown in lattice. I tag HTML non funzioneranno qui.

La mia soluzione è reimplementare \includegraphics

\let\maxincludegraphics\includegraphics
\renewcommand{\includegraphics}[1]{\maxincludegraphics[max width=\textwidth]{#1}}

È analogo all'utilizzo dei CSS dopo una conversione in HTML.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.