How to add images to README.md on GitHub?
Asked Answered
L

46

3365

Recently I joined GitHub. I hosted some projects there.

I need to include some images in my README File. I don't know how to do that.

I searched about this, but all I got was some links which tell me to "host images on web and specify the image path in README.md file".

Is there any way to do this without hosting the images on any third-party web hosting services?

Looksee answered 24/1, 2013 at 5:44 Comment(6)
Duplicate of #10189856 which was posted in 2012.Vituperation
Not off-topic, GitHub is a programmer's tool.Isiahisiahi
Possible duplicate of How to add screenshot to READMEs in github repository ?Beyer
@leetNightshade: It looks like it is vice-verse: the linked question is duplicate for this one. Look at number of views and votes. Though linked question was posted earlier.Abecedarian
@EugenKonkov No, that's not how things work.Vituperation
ReadMe files are not webpages. The way you include images in your ReadMe which must also work offline, is by putting the images in a folder "readme/" under your root, and then in your markdown file add the following code ![my_image](readme/<my_image.png>)Rubious
C
3420

Try this markdown:

![alt text](http://url/to/img.png)

I think you can link directly to the raw version of an image if it's stored in your repository. i.e.

![alt text](https://github.com/[username]/[reponame]/blob/[branch]/image.jpg?raw=true)
Cadmar answered 24/1, 2013 at 5:46 Comment(22)
You should also consider using relative linksAnaliese
Relative links are not a great use here, imagine your readme is also displayed on npm that does not host the image in this way - it needs to link to GitHub. Image srcs should be on the github.com domain, not the raw.github.com subdomain and not the raw.githubusercontent.com domain.Microwave
I just tried it by right-clicking on an image in my project, copying the link, and putting it in the README.md. That gave me the github.com domain as you suggest, but although it displayed fine on github, it did not display fine on my local copy. On the other hand, using raw.github.com and deleting "blob/" from the path displayed fine on my local computer. So, I would say the accepted answer here is correct as is.Mendelism
I actually ended up going with the relative paths (which for me is just the name of the image file because I have everything in root). I had been maintaining 2 copies of the README.md, one for local installation in /usr/share/projectname/docs, and one for github. Now, I can just use the same README.md for both since the image filenames work fine in both cases. If I want to post a copy of parts of my README somewhere else, I'll either have to host the images somewhere else or put in the raw.github.com url.Mendelism
GitHub themselves recommend relative paths: help.github.com/articles/relative-links-in-readmes One major downside of absolute paths is that, if the image gets moved in master, other branches that still point to the old URL will break.Francisfrancisca
How would you create a clickable image , which goes to a certain URL ?Powder
Note, Github's default markdown interpreter wraps the image inside an anchor tag, which may not be what you always want.Grocery
I think that relative links break on npm package descriptions, which pull from README.mdsRhodarhodamine
What is the differente between [[link]] and ![alt-text](link)Sholem
I found that I have to use the address listed when going to that image in Github which is different from what people are saying here. ![title](https://github.com/username/reponame/blob/master/subfolders.../filename.jpg) Notice the "blob" term in the filename. The answers here didn't work for me in 2017.Yate
You can use relative links to show images in your readme file on Github. Check this example.Coop
This auto-wraps the image in <p><a>...</a></p> tags, which isn't ideal. Is there any way to disable that?Grocery
@captainclam I have implemented your solution and it's worked like a charm. But I am facing one issue, gif is playing only once. While in my local machine it is playing on repeat mode. I don't know why GitHub plays it only once. Any Help is appreciated! Thank youIrresponsible
Currently suggested domain doesn’t seem to work and the link should be like this: https://github.com/[username]/[reponame]/blob/[branch]/image.jpg?raw=trueGirhiny
In the event that you do not need a caption you can leave it blank. An example may be easier to understand in this case: ![](https://url/figure.png)Panaggio
Relative path worked for me in github repository ![alt text](/resources/images/roadmap.png)Anthrax
You can Upload image to Repo and then go to image, click on download and get the link and add it to the readme file: ![alt text](link to download image)Ares
Raw version comes with?token=TOKEN it stops working after a whileCarnes
There's a permalink option for images in the repos. Go to the image, and you'll find it among the options of it.Leyba
Not working for mePotage
@LeeCrossley Apparently relative links can still work on NPM as long as your package.json correctly specifies the path to your Github repository. See this thread. Can anyone confirm if this works?Bevan
@Abdur Rahman's answer below of using ctrl+c/ctrl+v in GitHUb's web-based editor is really the most efficient answer. GitHub will upload and generate the right link for you. https://mcmap.net/q/40393/-how-to-add-images-to-readme-md-on-githubHayman
D
932

You can also use relative paths like

![Alt text](relative%20path/to/img.jpg?raw=true "Title")

Also try the following with the desired .fileExtention:

![plot](./directory_1/directory_2/.../directory_n/plot.png)
Domel answered 8/10, 2015 at 3:18 Comment(16)
Yes. This is by far the easiest way unless you're worried about performance.I'd note that this is relative to the directory not the repo, so if you have 'myimage.png' in the same dir as 'about_pics.md' then the markup is:![What is this](myimage.png)Asben
This is an awesome solution because 1) it works 2) images are also shown in a local viewer, with no need of internet accessLoaf
@Asben can you expand on your comment regarding performance. What performance issues are there with the relative path approach?Donahoe
Oh, I just thought that since this retrieves the image from the repo, it's intrinsically going to do more work than having the images on a CDN or whatever.Asben
This path is relative to what?Comrade
Your github folder is the root so its relative to the root of the github folder. if you have $HOME/mygithub_folder/doc/img.jpg? then just use doc/img.jpg in your $HOME/mygithub_folder/README.mdDomel
relative to what?Jaynes
@Domel so relative/path/to/img.jpg is the same as /relative/path/to/img.jpg?Comrade
The ?raw=true was the secret sauce that finally got this to work for me.Hemipode
Has anyone figured out how to get this working in a preview or PR?Cassey
As pointed out by Lee Crossley, you should avoid relative links because they break when your readme is displayed on npm. Instead, link to image src on github.com domain with "?sanitize=true" flag if the image format is something like SVG. See more details at this SO answer: https://mcmap.net/q/40725/-include-an-svg-hosted-on-github-in-markdownCohbath
It's relative to the README.md position. I have that readme in a docs folder and then images below with my screenshots, so I do ![Image](images/ss_apps.png)Stake
Thanks, a relative path of images/file.png worked for me. Just to point out: I had to add ?raw=true to the URL. Otherwise the image was not displayed (but a broken icon).Bibi
@Cohbath Apparently relative links can still work on NPM as long as your package.json correctly specifies the path to your Github repository. See this thread. Can anyone confirm if this works?Bevan
"you should avoid relative links because they break when your readme is displayed on npm" This question is about GitHub, not npm. 99% of repos are not npm packages and therefore great candidates for using relative links.Camphorate
@Asben This is completely false. Retrieving an image, i.e binary file, from a local system is always and obviously quicker than making an http call and downloading the binary file from the web before displaying it. I don't know how you could think the opposite.Fry
F
417
  • You can create a New Issue
  • upload(drag & drop) images to it
  • Copy the images URL and paste it into your README.md file.

here is a detailed youTube video explained this in detail:

https://www.youtube.com/watch?v=nvPOUdz5PL4

Forbiddance answered 28/10, 2014 at 6:3 Comment(14)
As far as I understand you do not really need to save the issue. This way you do not really need those dummy tickets in the Issue Tracker. Question is if this is a "safe" method, meaning if GitHub will detect (after some time) that the image is orphaned and therefore delete it from the GitHub CDN ??Atherton
This answer worked perfectly for me and didn't need to save the new issue within the repo. I've found a video on Youtube that explains that in details: youtube.com/watch?v=nvPOUdz5PL4.Aeronautics
This answer works, and requires little effort. The issue can be discarded, but the URL for the image persists. The image URL is in the form of: user-images.githubusercontent.com...Tectonic
This is a great trick! But does anyone know the answer to @peterh's question? Will GitHub periodically purge images that are orphaned (i.e. doesn't have an issue attached to it)?Goatsucker
@JohnnyOshika I doubt anyone outside of github could definitively answer that. It might be dependent on what "user-images.githubusercontent.com" is used for. If it is only for images uploaded to comments, then it is plausible that they could scan for the missing data relation and remove the image. If its more general, it may be difficult to definitely determine that there are no references to the file, making it either computationally expensive or challenging to determine that it can be deleted without issues.Vasya
The fact that this is the easiest way should be an embarrassment to GitHub. After 15 minutes messing about with Wiki, gh-pages and github.io, I'm just going to use this solution (again).Misstate
I just would like to say that, it is not safe even for the hosting service in this way, you don't even know which day suddenly they will stop hosting your image. Simply put the image in the repo and follow this. https://mcmap.net/q/40393/-how-to-add-images-to-readme-md-on-githubMelbamelborn
@LukAron you think, or you know it is not save?Salesclerk
@Blechdose Just by my first intuition, the possibility of losing that host image is considerable.Melbamelborn
uploading to an issue isn't needed, upload to ur repo (recommended) or use an image hosting provider.Hurff
I've used this for image hosting and have had the images disappear without warning. Highly recommend hosting within a repo over thisBedder
Also works for Gitlab.Regrate
You're in for a world of pain if you do this in a hosted GitHub instance and then move to their cloud service. Migrating a repo is easy, but (1) issues don't get migrated and (2) neither do images. Today, I'm doing just such a migration with dozens (hundreds?) of images that were being stored this way, and finding that preserving the images will be the largest part of the migration effort.Bianca
With this approach, your graphic is not actually in your repository. It is in some GitHub location and managed on a completely different set of policies. I would rather have the image checked in with the repo so that it will always be there if I move the repository or whatever.Aloisia
R
304

It's much simpler than that.

Just add your image to the repository, and link to the filename, like so:

![screenshot](screenshot.png)
Rumery answered 8/7, 2016 at 20:7 Comment(9)
No, I don't think adding screenshots to the git repo is a good practice. Especially not at the root. Ahmad Ajmi's answer is much betterTaurine
Not at the root but you can easily adapt this to docs/images or what ever, small png screenshots are ok IMHOWhipstock
This should be the accepted solution, esp. with Christophe's suggestion to put the images under the doc/ tree/Excurvate
perfect..!! if the png is in another folder. Simply, add the path "folderName/screenshot.png"Solberg
I found your answer useful for my case: I'm on Gitlab and I use logo.png pictures at the root of the repo to set an avatar to the repo. I wanted to include this pic to the README.md.Oruro
in case it helps: I found PNG format seems to work, where SVG did not (perhaps how our gitlab server is configured - it seems to serve up SVG as text, event with ?rawVitek
A very similar answer, just add this to your readme <img src="screenshot.png"> if (screenshot.png is in your root folder)Paperboy
Works like a charm. - ![Screenshot](screenshot.png)Homocercal
This is the correct answer. Making web requests for images in ReadMe files should be highly discouraged. Everyone somehow thinks web requests are free, and that we aren't burning coal and heating the planet to power internet servers. If that's not important to you, then also consider the Readme should work offline and without the internet, and that additional requests, especially for images can be a security hole.Rubious
C
134

You can also add images with simple HTML tags:

<p align="center">
  <img src="your_relative_path_here" width="350" title="hover text">
  <img src="your_relative_path_here_number_2_large_name" width="350" alt="accessibility text">
</p>
Clericals answered 30/1, 2016 at 4:45 Comment(5)
When you using HTML tag(s) inside you markdown file. It will be ignored by Pandoc, a universal document converter.Champlin
This is best so it can be centered or placed on one side (for smaller images, at least.)Hostile
How do you specify the relative path? It's not relative to README.md (in all cases?).Hydrous
This worked best for me, including when editing my README.md file using VS Code and it displays correctly on GitHub.Ribera
This works good, simple and elegant. width was too small, thanksMargemargeaux
R
99

Very Simple : Can be done using Ctrl + C/V

Most of the answers here directly or indirectly involve uploading the image somewhere else & then providing a link to it.

It can be done very simply by just copying any image and pasting it while editing Readme.md

  • Copying the image - You can just click on the image file and use Ctrl + C or may copy the screenshot image to your clipboard using the snipping tool
  • You can then simply do Ctrl + V while editing Readme.md

Guithub will automatically upload it to user-images.githubusercontent.com and a link to it will be inserted there

Rotogravure answered 13/12, 2021 at 14:34 Comment(6)
Really the most useful answer. Even I was searching for this, but most of the answers I got involved uploading the image somewhere like in issues/repo etc. & providing a link to it. This one really helps!Lecher
This might be obvious to others, but make sure you're editing the README file on the GitHub repository on the web. It won't work in your local IDE, you have to manually edit the README file on the repo and then drag and drop. Thanks for the answer!Fogged
this best way edit read me > copy pic > paste > saveDisadvantage
I can confirm this worked - the editor in github handled cmd+v very cleanly and uploads the imageKingsize
This, unless you are updating it in markdown, then do what Ahmad Ajmi answered.Inharmonic
It absolutly work!!!. Great job.Theoretician
A
95

You can also insert animated SVG images in the markdown file like any other format.
It can be a good alternative to GIF images.

![image description](relative/path/in/repository/to/image.svg)
OR
<img src="relative/path/in/repository/to/image.svg" width="128"/>

Example (assuming the image is in assets directory in the repository):

![My animated logo](assets/my-logo.svg)

Result:

To use different images based on GitHub dark/light theme see this post.

Arlaarlan answered 11/10, 2021 at 8:46 Comment(4)
how do I reduce the width use I use ![image description](relative/path/in/repository/to/image.svg)Libava
@DanielSogbey I think you should use the HTML element <img> and set the width attribute like <img src="relative/..." width="100px" />.Arlaarlan
@DanielSogbey can I use external url with img tag? Mine doesn't workingDolli
@SunPodder sorry for coming in late, an external url should work perfectlyLibava
H
83

Many of the posted solutions are incomplete or not to my taste.

  • An external CDN like imgur adds another tool to the chain. Meh.
  • Creating a dummy issue in the issue tracker is a hack. It creates clutter and confuses users. It's a pain to migrate this solution to a fork, or off GitHub.
  • Using the gh-pages branch makes the URLs brittle. Another person working on the project maintaining the gh-page may not know something external depends on the path to these images. The gh-pages branch has a particular behavior on GitHub which is not necessary for hosting CDN images.
  • Tracking assets in version control is a good thing. As a project grows and changes it's a more sustainable way to manage and track changes by multiple users.
  • If an image applies to a specific revision of the software, it may be preferable to link an immutable image. That way, if the image is later updated to reflect changes to the software, anyone reading that revision's readme will find the correct image.

My preferred solution, inspired by this gist, is to use an assets branch with permalinks to specific revisions.

git checkout --orphan assets
git reset --hard
cp /path/to/cat.png .
git add .
git commit -m 'Added cat picture'
git push -u origin assets
git rev-parse HEAD  # Print the SHA, which is optional, you'll see below.

Construct a "permalink" to this revision of the image, and wrap it in Markdown.

Looking up the commit SHA by hand is inconvenient, however, so as a shortcut press Y to a permalink to a file in a specific commit as this help.github page says.

To always show the latest image on the assets branch, use the blob URL:

https://github.com/github/{repository}/blob/assets/cat.png 

(From the same GitHub help page File views show the latest version on a branch)

Heber answered 8/3, 2017 at 17:13 Comment(6)
This is a good complement to the accepted answer. Assets are tracked, images are not in master, no clutter. Just be careful about the git reset --hard; make sure changes were committed.Homeopathist
In the wild on your machine. You can point it to wherever the file happens to be (~/Downloads, /tmp, etc.).Heber
I swear I remember there being a directory that you can make that doesn't show up on Github. Until I can track that down, this post seems like the next best thing to use. Thanks!Hound
I don't get what is the advantage of creating new branch for assets. Why not just keep the assets in the same branch, with files that use those assets?Macur
There's less clutter that way.Heber
Some people don't want purely doc/pr assets mixed in with the code. My own answer to this is usually I just decide that readme and a few screenshots are part of the defined purpose of the root dir, and if there are more than 1 or a very few images or other stuff, I just put them all into a directory. The dir serves the same purpose as the branch to pack them away, and automatically maintains versioned assets matching the readme and other docs and the app itself. And is a lot simpler mental model, and a lot simpler to copy/fork/tar/migrate/backup/etc. And still simple relative paths.Roncesvalles
K
37

I need to include some images in my README File. I don't know how to do that.

I created a small wizard that allows you to create and customize simple image galleries for your GitHub repository's readme: See ReadmeGalleryCreatorForGitHub.

The wizard takes advantage of the fact that GitHub allows img tags to occur in the README.md. Also, the wizard makes use of the popular trick of uploading images to GitHub by drag'n'dropping them in the issue area (as already mentioned in one of the answers in this thread).

enter image description here

Kristankriste answered 25/9, 2015 at 20:48 Comment(0)
A
36

Commit your image (image.png) in a folder (myFolder) and add the following line in your README.md:

![Optional Text](../master/myFolder/image.png)

Annamariaannamarie answered 14/6, 2017 at 10:1 Comment(0)
S
25

Basic Syntax

![myimage-alt-tag](url-to-image)

Here:

  1. my-image-alt-tag : text that will be displayed if image is not shown.
  2. url-to-image : whatever your image resource is. URI of the image

Example:

![stack Overflow](http://lmsotfy.com/so.png)

This will look like the following:

stack overflow image by alamin

Sarsen answered 21/1, 2016 at 16:9 Comment(0)
E
23
  • Create an issue regarding adding images
  • Add the image by drag and drop or by file chooser
  • Then copy image source

  • Now add ![alt tag](http://url/to/img.png) to your README.md file

Done!

Alternatively you can use some image hosting site like imgur and get it's url and add it in your README.md file or you can use some static file hosting too.

Sample issue

Enthuse answered 12/10, 2016 at 19:2 Comment(1)
This is the easiest way to add them in my opinion. Simply drag them into the box, copy the address and paste it into your readme with captions below. Boom, you're done.Keystone
M
20

Just add an <img> tag to your README.md with relative src to your repository. If you're not using relative src, make sure the server supports CORS.

It works because GitHub support inline-html

<img src="/docs/logo.png" alt="My cool logo"/>
# My cool project and above is the logo of it

Observe here

Maelstrom answered 25/3, 2018 at 20:27 Comment(0)
N
20

You can now drag and drop the images while editing the readme file.

Github will create a link for you which will be in the format of:

https://user-images.githubusercontent.com/******/********.file_format

Alternatively, at the bottom of the file, it says "Attach files by dragging & dropping, selecting or pasting them". If you click on that one, it will give you an option to upload a file directly or you can just paste it!

Never answered 1/3, 2021 at 17:52 Comment(0)
P
20

You Can use

![A test image](image.png)

Where ![A test image] is your alt text and (image.png) is the link to your image.


You can have the image on a cloud service or other online image hosting platforms Or you can provide the image link from the repository if it is in the repo


You can also make a specific folder inside your repository dedicated to your readme images

Pinsk answered 11/4, 2021 at 7:23 Comment(0)
L
16

Step by step process, First create a folder ( name your folder ) and add the image/images that you want to upload in Readme.md file. ( you can also add the image/images in any existing folder of your project. ) Now,Click on edit icon of Readme.md file,then

![](relative url where images is located/refrence_image.png)  // refrence_image is the name of image in my case.

After adding image, you can see preview of changes in the, "Preview Changes" tab.you will find your image here. for example like this, In my case,

![](app/src/main/res/drawable/refrence_image.png)

app folder -> src folder -> main folder -> res folder -> drawable folder -> and inside drawable folder refrence_image.png file is located. For adding multiple images, you can do it like this,

![](app/src/main/res/drawable/refrence_image1.png)
![](app/src/main/res/drawable/refrence_image2.png)
![](app/src/main/res/drawable/refrence_image3.png)

Note 1 - Make sure your image file name does not contain any spaces. If it contain spaces then you need to add %20 for each space between the file name. It's better to remove the spaces.

Note 2 - you can even resize the image using HTML tags, or there are other ways. you can google it for more. if you need it.

After this, write your commit changes message, and then commit your Changes.

There are many other hacks of doing it like, create a issue and etc and etc. By far this is the best method that I have came across.

Leftist answered 25/5, 2020 at 10:7 Comment(2)
adding more images like this is not worked for me. Is there any other way to do that?Fussbudget
strongly suggest adding alt-text to make things more accessible for people using screenreadersInocenciainoculable
W
15

Use tables to stand out, it will give separate charm to it

Table Syntax is:

Separate each column cell by symbol |

and table header (First row) by 2nd row by ---


| col 1      | col 2      |
|------------|-------------|
| image 1 | image 2 |

output

enter image description here


Now just put <img src="url/relativePath"> at image 1 and image 2 if you are using two images


Note: if using multiple images just include more columns, you may use width and height attribute to make it look readable.

Example


| col 1      | col 2      |
|------------|-------------|
| <img src="https://media.wired.com/photos/5926db217034dc5f91becd6b/master/w_582,c_limit/so-logo-s.jpg" width="250"> | <img src="https://mk0jobadderjftub56m0.kinstacdn.com/wp-content/uploads/stackoverflow.com-300.jpg" width="250"> |

Spacing does not matter

Output image

enter image description here

helped by : adam-p

Waylin answered 4/3, 2019 at 3:38 Comment(3)
The use of tables is irrelevant to the topic of the OP's question.This
adding screenshots of an app can be done this way nicely, thanksHerrin
Use CSS instead of Tables, it will rock your world.Thornberry
S
12

In new Github UI, this works for me -

Example - Commit your image.png in a folder (myFolder) and add the following line in your README.md:

![Optional Text](../main/myFolder/image.png)
Shaeffer answered 16/7, 2020 at 6:49 Comment(0)
S
11

You can just do:

git checkout --orphan assets
cp /where/image/currently/located/on/machine/diagram.png .
git add .
git commit -m 'Added diagram'
git push -u origin assets

Then you can just reference it in the README file like so:

![diagram](diagram.png)

Susuable answered 13/12, 2018 at 23:10 Comment(1)
Note that GitHub supports various diagram languages in .md files. So you can write the code for the diagrams right in the markdown files, no need to embed rendered image of the diagram.Benjie
H
9

Although GitHub markdown can also add pictures I will suggest you use an HTML IMG tag
GitHub Markdown

![me](https://github.com/samadpls)

HTML TAG

<img src='https://github.com/samadpls'/>
Hairstyle answered 10/9, 2022 at 15:29 Comment(0)
H
9

No need to write any code. readme file on GitHub now supports drag and drop

  1. Open README.md file
  2. Click Edit this file
  3. Drag & drop your image
  4. Click commit changes
Hobby answered 14/11, 2022 at 20:32 Comment(0)
Y
8

I usually host the image on the site, this can link to any hosted image. Just toss this in the readme. Works for .rst files, not sure about .md

.. image:: https://url/path/to/image
   :height: 100px
   :width: 200 px
   :scale: 50 %
Yalonda answered 12/5, 2015 at 17:15 Comment(0)
S
8

I have solved this problem. You only need to refer to someone else's readme file.

At first,you should upload an image file to github code library ! Then direct reference to the address of the image file .



enter image description here

enter image description here

Slavism answered 25/2, 2016 at 3:4 Comment(0)
B
8

You can link to images in your project from README.md (or externally) using the alternative github CDN link.

The URL will look like this:

https://cdn.rawgit.com/<USER>/<REPO>/<BRANCH>/<PATH>/<TO>/<FILE>

I have an SVG image in my project, and when I reference it in my Python project documentation, it does not render.

Project link

Here is the project link to the file (does not render as an image):

https://github.com/jongracecox/anybadge/blob/master/examples/awesomeness.svg

Example embedded image: image

Raw link

Here is the RAW link to the file (still does not render as an image):

https://raw.githubusercontent.com/jongracecox/anybadge/master/examples/awesomeness.svg

Example embedded image: image

CDN link

Using the CDN link, I can link to the file using (renders as an image):

https://cdn.rawgit.com/jongracecox/anybadge/master/examples/awesomeness.svg

Example embedded image: image

This is how I am able to use images from my project in both my README.md file, and in my PyPi project reStructredText doucmentation (here)

Bovine answered 10/2, 2018 at 16:52 Comment(0)
B
8

JUST THIS WORKS!!

take care about your file name uppercase in tag and put PNG file inroot, and link to the filename without any path:

![Screenshot](screenshot.png)
Bankroll answered 14/8, 2018 at 18:10 Comment(1)
Here (screenshot.png) is relative path from readme.md file. e.g., I had (images/landing_page.png)Electrophilic
B
7

In my case i use imgur and use the direct link this way.

![img](http://i.imgur.com/yourfilename.png)
Baryram answered 13/12, 2016 at 2:0 Comment(0)
W
7

There are 2 simple way you can do this ,

1) use HTML img tag ,

2) ![](the path where your image is saved/image-name.png)

the path would you can copy from the URL in the browser while you have opened that image. there might be an issue occur of spacing so make sure if there is any space b/w two words of path or in image name add-> %20. just like browser do.

Both of them will work , if you want to understand more you can check my github -> https://github.com/adityarawat29

Whitcomb answered 3/3, 2019 at 9:19 Comment(2)
This has worked for me. Having an image in a folder "apps" under the README.md I've used: ![](images/ss_apps.png) Stake
I am surprised that only Aditya mentioned that spaces are a problem, and in a rather stupid way too - no errors, but your syntax is simply displayed like no such feature would even exist. Upvote from me for mentioning this.Larghetto
T
6

In case you need to upload some pictures for documentation, a nice approach is to use git-lfs. Asuming that you have installed the git-lfs follow these steps:

  1. Intialize git lfs for your each image type:

     git lfs *.png
     git lfs *.svg
     git lfs *.gif
     git lfs *.jpg
     git lfs *.jpeg
    
  2. Create a folder that will be used as image location eg. doc. On GNU/Linux and Unix based systems this can be done via:

     cd project_folder
     mkdir doc
     git add doc
    
  3. Copy paste any images into doc folder. Afterwards add them via git add command.

  4. Commit and push.

  5. The images are publicly available in the following url:

     https://media.githubusercontent.com/media/^github_username^/^repo^/^branch^/^image_location in the repo^
    

Where:

  • ^github_username^ is the username in github (you can find it in the profile page)
  • ^repo_name^ is the repository name
  • ^branch^ is the repository branch where the image is uploaded
  • ^image_location in the repo^ is the location including the folder that the image is stored.

Also you can upload the image first then visit the location in your projects github page and navigate through until you find the image then press the download button and then copy-paste the url from the browser's address bar.

Look this from my project as reference.

Then you can use the url to include them using the markdown syntax mentioned above:

![some alternate text that describes the image](^github generated url from git lfs^)

Eg: Let us suppose we use this photo Then you can use the markdown syntax:

![In what order to compile the files](https://media.githubusercontent.com/media/pc-magas/myFirstEnclave/master/doc/SGX%20Compile%20workflow.png)
Tipton answered 18/11, 2017 at 21:7 Comment(1)
Truly the best solution listed, png can rapidly bloat the index of the repo, and cause slowness. The new command for git lfs seems to be: git lfs track *.pngCoincidental
I
6

This Answer can also be found at: https://github.com/YourUserAccount/YourProject/blob/master/DirectoryPath/ReadMe.md

Display images from repo using:

prepend domain: https://raw.githubusercontent.com/

append flag: ?sanitize=true&raw=true

use <img /> tag

Eample url works for svg, png, and jpg using:
  • Domain: raw.githubusercontent.com/
  • UserName: YourUserAccount/
  • Repo: YourProject/
  • Branch: YourBranch/
  • Path: DirectoryPath/
  • Filename: example.png

Works for SVG, PNG, and JPEG

 - `raw.githubusercontent.com/YourUserAccount/YourProject/YourBranch/DirectoryPath/svgdemo1.svg?sanitize=true&raw=true`

Working example code displayed below after used:

**raw.githubusercontent.com**:
<img src="https://raw.githubusercontent.com/YourUserAccount/YourProject/master/DirectoryPath/Example.png?raw=true" />

<img src="https://raw.githubusercontent.com/YourUserAccount/YourProject/master/DirectoryPath/svgdemo1.svg?sanitize=true&raw=true" />

raw.githubusercontent.com:

Thanks: - https://mcmap.net/q/40393/-how-to-add-images-to-readme-md-on-github - https://github.com/potherca-blog/StackOverflow/edit/master/question.13808020.include-an-svg-hosted-on-github-in-markdown/readme.md

Impercipient answered 27/12, 2018 at 0:21 Comment(3)
It didn't work for me until I removed the query string.Vav
At least for .png and raw.githubusercontent.com sanitize=true doesn't work and should be removed. raw=true works fine. github.com/sphinxy/AppDynamics.Playground/blob/master/README.mdMovie
rawgit.com shut down in 2018 and should not be used any more; you should remove it from this answer. raw.githubusercontent.com, which you also mention, is the closest alternative.Starbuck
R
5

In my case I wanted to show a print screen on Github but also on NPM. Even though using the relative path was working within Github, it wasn't working outside of it. Basically, even if I pushed my project to NPM as well (which simply uses the same readme.md, the image was never showing.

I tried a few ways, at the end this is what worked for me:

![Preview](https://raw.githubusercontent.com/username/project/master/image-path/image.png)

I now see my image correctly on NPM or anywhere else that I could publish my package.

Rockfish answered 27/7, 2016 at 23:31 Comment(0)
V
5

I am just extending or adding an example to the already accepted answer.

Once you have put the image on your Github repo.

Then:

  • Open the corresponding Github repo on your browser.
  • Navigate to the target image file Then just open the image in a new tab. Opening the image in a new tab
  • Copy the url Copy the url from the browser tab
  • And finally insert the url to the following pattern ![alt text](https://raw.githubusercontent.com/username/projectname/branch/path/to/img.png)

On my case it is

![In a single picture](https://raw.githubusercontent.com/shadmazumder/Xcode/master/InOnePicture.png)

Where

  • shadmazumder is my username
  • Xcode is the projectname
  • master is the branch
  • InOnePicture.png is the image, On my case InOnePicture.png is in the root directory.
Vacillation answered 29/8, 2018 at 19:40 Comment(1)
This is the only one that worked flawlessly for me. No confusion about paths, whether "master" refers to a directory or a branch, where the root start is, etc. Only caveat is Firefox (72) does not allow you to open image in separate tab so this is Chrome only for now I think.Triglyph
I
5

I have found another solution but quite different and i'll explain it

Basically, i used the tag to show the image, but i wanted to go to another page when the image was clicked and here is how i did it.

<a href="the-url-you-want-to-go-when-image-is-clicked.com" />
<img src="image-source-url-location.com" />

If you put it right next to each other, separated by a new line, i guess when you click the image, it goes to the tag which has the href to the other site you want to redirect.

Illegal answered 17/7, 2019 at 5:18 Comment(0)
B
4

LATEST

Wikis can display PNG, JPEG, or GIF images

Now you can use:

[[https://github.com/username/repository/blob/master/img/octocat.png|alt=octocat]]

-OR-

Follow these steps:

  1. On GitHub, navigate to the main page of the repository.

  2. Under your repository name, click Wiki.

  3. Using the wiki sidebar, navigate to the page you want to change, and then click Edit.

  4. On the wiki toolbar, click Image.

  5. In the "Insert Image" dialog box, type the image URL and the alt text (which is used by search engines and screen readers).

  6. Click OK.

Refer Docs.

Boyt answered 23/1, 2018 at 9:1 Comment(0)
T
4

To upload images with size managing option:

<img src="a.jpg" alt="J" width="200"/>
Theurich answered 12/10, 2021 at 20:32 Comment(0)
R
3

Consider using a table if adding multiple screenshots and want to align them using tabular data for improved accessibility as shown here:

high-tea

If your markdown parser supports it you could also add the role="presentation" WIA-ARIA attribute to the TABLE element and omit the th tags.

Riane answered 17/10, 2018 at 13:9 Comment(0)
S
3

Use markdown syntax:

![ALT TEXT](../IMAGE_PATH/image.png)

or

![ALT TEXT](https://url_path/image.png)

You can also use online tools to generate the markdown for your content. Some of the tools which I used:

Story answered 7/9, 2023 at 19:16 Comment(0)
F
2

There's yet another option I haven't seen mentioned. You can simply create another repository under your user or organization called "assets". Push your images to this repo and reference them from your other repos:

![alt text](https://raw.githubusercontent.com/my-org/assets/master/folder/logo.png)

I've done this in one of my repos and it suits me fine. I can version my README images for all of my projects independently of my code, but still keep them all in one place. No issues or branches or other easily misplaced artifacts required.

Fulkerson answered 24/3, 2020 at 7:39 Comment(0)
I
2

This one works for me!!!.

![alt text](https://github.com/[username]/[reponame]/blob/[branch]/image.jpg?raw=true)

alt text is the alternative text you wanna display incase the image URL doest not exist.

user_name is your GitHub username. reponame is your GitHub repo name.

Inherent answered 8/10, 2022 at 15:41 Comment(0)
L
2

Github supports many ways, use according to your needs.

1- Using Relative URLs:

If image is stored in the same repository as the README.md file then use this.

![Alt text](relative/path/to/image.png)

2- Using Absolute URLs:

use this when the image is hosted on a public server.

![Alt text](https://example.com/path/to/image.png)

3- Method no 3:

  • First upload the image directly to your GitHub repository and give the reference using a relative URL.
  • Then Drag and drop the image into the "Issues" section or any comment box in your repository to upload the image.
  • Once the image is uploaded, click on it to open the image file.
  • Copy the URL from the browser's address bar and use it in the README.md.

4- Using GitHub's Raw Content URL:

![Alt text](https://raw.githubusercontent.com/username/repository/master/path/to/image.png)

5- Using HTML Tag

<img src="https://example.com/path/to/image.png" alt="Alt text">

7- Sheild IO Badges:

![Build Status](https://img.shields.io/badge/build-passing-brightgreen)

Hope it helps.

Laetitia answered 27/7, 2023 at 15:47 Comment(0)
B
1

We can do this simply,

  • create a New Issue on GitHub
  • drag and drop images on the body div of Issue

after a few seconds, a link will be generated. Now, copy the link or image URL and use it any supported platform.

Bonney answered 8/7, 2018 at 12:3 Comment(0)
K
1

Add image in your repository from upload file option then in README file

![Alt text]("enter repository image URL here") 
Katzenjammer answered 18/1, 2020 at 10:16 Comment(0)
S
1

If you want to show an image hosted at any website (say url is "http:// abc.def.com/folder/image.jpg") then in your README.md file use the below syntax:

![alt text](<http:// abc.def.com/folder/image.jpg>)

  • Just browse to the image in your browser (may be by clicking on the image). It can be any website, including yours or somebody else's github hosted image.
  • Copy the url from the browser address bar, that is your "image_url" to be used in above referred syntax.

For images hosted in your own github repository you can use relative path in addition to the above url format
![alt text](<path_relative_to_current_github_location/image.jpg>)


If the image is located in the same folder as the README.md file (special case of relative path url), then you can use:
![alt text](<image.jpg>)

Note the angular brackets "<" and ">" enclosing the url. Sometimes these are required for the url to work.

Stamin answered 27/4, 2020 at 20:10 Comment(0)
T
1

You can as well drop the image at the appropriate part in the Read Me file.

Tanika answered 11/4, 2022 at 11:34 Comment(1)
This only works if you're using the editor directly on githubNewsman
B
1

In the latest Github i have tried all the above ways and failed to show images on my readme page. The best that i found if it's a public repo is to use githubpages for the master or main branch and then reference the link in the readme file.

Steps:

  • In your repo go to settings -> under Code and automation select Pages
  • Select source and branch of your repo and click on save

now your repo should be hosted on (https://*username*.github.io/*reponame*/)

now you can simply add your image by

![Preview Image](https://*username*.github.io/*reponame*/images/logo.PNG)
Basra answered 3/1, 2023 at 20:51 Comment(0)
G
0

If you dont't want to "mess up" your branch's content with these images and it's not a problem for you that the link is absolute, then I recommend to use a separate orphan branch to store these images. In this case, images will be integrated with the repo while not included in the main content. In addition, you can use LFS for larger files (all the leading git hosts support LFS).

You can easily create an orphan branch in the command line:

git checkout --orphan images
git reset --hard
cp /path/to/your/image.jpg ./image.jpg
git add --all
git commit -m "Add some images"
git checkout master
git log -n 3 --all --graph

If everyhing is OK, push the new branch:

git push -u origin images

Then use the raw github URL of the image.

Gleaning answered 28/3, 2022 at 2:49 Comment(0)
C
0

for me I resolved this problem in 2 steps:

  1. I have uploaded the photo in the repository I get his url (which I will use in step 2)

  2. ![Screenshot (624)](here you have to insert the image url)

Hope it works :)

Cooky answered 3/1, 2024 at 21:7 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.