ChatGPT解决这个技术问题 Extra ChatGPT

How to add screenshot to READMEs in github repository?

Is it possible to place a screenshot in README file in a GitHub repository? What's the syntax?

The correct solution to this is to use relative references, per this answer stackoverflow.com/a/11916467/1633251 (see the comment with the link to a new github doc on how to do this). The short answer is to use [Read more words!](docs/more_words.md)
Most solutions propose to point to the repo itself. What about if you want to avoid binaries in the repo (even in a separated branch, as proposed) and you want to store it in an external place? Any good practices? A gist maybe (IDK if gist can be binary or just text)? creating another repo "myproject-assets" for the project "myproject"? Any external popular image-place similar to the de-facto standard of youtube for uploading videos?
Possible duplicate of Add images to README.md on GitHub
March 2021: simple drag&drop: See my answer below

P
Paul

If you use Markdown (README.md):

Provided that you have the image in your repo, you can use a relative URL:

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

If you need to embed an image that's hosted elsewhere, you can use a full URL

![Alt text](http://full/path/to/img.jpg "Optional title")

GitHub recommend that you use relative links with the ?raw=true parameter to ensure forked repos point correctly.

The raw=true parameter is there in order to ensure the image you link to, will be rendered as is. That means that only the image will be linked to, not the whole GitHub interface for that respective file. See this comment for more details.

Check out an example: https://raw.github.com/altercation/solarized/master/README.md

If you use SVGs then you'll need to set the sanitize attribute to true as well: ?raw=true&sanitize=true. (Thanks @EliSherer)

Also, the documentation on relative links in README files: https://help.github.com/articles/relative-links-in-readmes

And of course the markdown docs: http://daringfireball.net/projects/markdown/syntax

Additionally, if you create a new branch screenshots to store the images you can avoid them being in the master working tree

You can then embed them using:

![Alt text](/../<branch name>/path/to/image.png?raw=true "Optional Title")

Well, I added the official docs on relative links, but I'm unable to find some repo that uses them, if you have suggestions, I'll be happy to help since the whole point is helping more people, not staying in the scope (my mistake here).
@Paul , here's an example repository doing just that! github.com/Tarrasch/zsh-bd
github.com/altercation/solarized is the rendered version of the example above, in case that helps anyone.
When you say /relative/path/to/img.jpg, isn't that an absolute path due to the leading slash?
For SVG to work add sanitize (i.e. ?raw=true&sanitize=true)
佚名

Even though there is already an accepted answer I would like to add another way to upload images to readme on GitHub.

You need to create issue in your repo

Drag and drop in the comment area your image

After link for the image is generated insert it to your readme

More details you can find here


I'm interested how long images loaded this way will live. Does github perform some images cleanup? Like, "if this image not referenced from any github issue, I can safely remove it"...
@Artin probably only when the issue is deleted completely. Closed issues stick around forever as they serve a very important role in documentation and debugging
R
Ryan

I found that the path to the image in my repo did not suffice, I had to link to the image on the raw.github.com subdomain.

URL format https://raw.github.com/{USERNAME}/{REPOSITORY}/{BRANCH}/{PATH}

Markdown example ![Settings Window](https://raw.github.com/ryanmaxwell/iArrived/master/Screenshots/Settings.png)


Downvoting this because of @sorens comment on the accepted answer. It's bad to specify absolute bath since it won't work well on forked repositories. (Or if you rename your repo, or if github changes domain name, etc. etc.)
@LinusUnnebäck: There's one good reason to use absolute paths imho: If the readme.md is used in other places as well, for example, as a Doxygen main-page. Relative links won't work then.
@Ela782 although, on a further note, that ought not to be an issue for software that's ripping README files specifically from GitHub; such software should know to resolve relative URLs properly. npm does, for example.
how to link to the image on the raw.github.com subdomain ? where to upload the image file ?
@Saif raw.github.com is just a reflection of what is committed to your github repository. Just commit the image to your repository and follow the URL format specified.
S
Shobhakar Tiwari

JUNE 3, 2020 : WORKING ANSWER-

Upload your image to postimage.org Copy Github-Markdown-Url after uploading Image Insert in your ReadMe


You are the only one whose answer was useful to me
It's a fine answer, but just be aware you're depending on that service to exist forever. It makes no guarantees about not disappearing one day. Neither does GitHub, but enough important projects and people depend on it that I feel safe that I'd at least be provided backups / dumps before it went down. Also, I don't know what its terms and conditions say, but again, because a lot more people would have pored over GitHub's T&C, I trust it more.
...and also if the image is on GitHub, the image and the readme will disapear together.
m
mmcorrelo

One line below should be what you looking for

if your file is in repository

![ScreenShot](https://raw.github.com/{username}/{repository}/{branch}/{path})

if your file is in other external url

![ScreenShot](https://{url})

suggest using the relative link of the image file, see Relative links in READMEs - Github Help
-1 for the reason given by @shaobin0604; the official docs recommend using relative links when linking to a file in your own repo, so that the link points to the right place when forked.
e
edelans

The markdown syntax for displaying images is indeed:

![image](https://{url})

BUT: How to provide the url ?

You probably do not want to clutter your repo with screenshots, they have nothing to do with code

you might not want either to deal with the hassle of making your image available on the web... (upload it to a server... ).

So... you can use this awesome trick to make github host your image file. TDLR:

create an issue on the issue list of your repo drag and drop your screenshot on this issue copy the markdown code that github has just created for you to display your image paste it on your readme (or wherever you want)

http://solutionoptimist.com/2013/12/28/awesome-github-tricks/


T
Taymour Niazi

Much simpler than adding URL Just upload an image to the same repository, like:

![Screenshot](screenshot.png)


This is precise. Thank you
D
Dan Alboteanu

add this to README

<div align="center">
    <img src="/screenshots/screen1.jpg" width="400px"</img> 
</div>

a
abe312

Markdown: ![Screenshot](http://url/to/img.png)

Create an issue regarding adding images

Add the image by drag and drop or by file chooser

Then copy image source

Now add ![Screenshot](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


I did this a long time ago, now images are unavailable. So I don't recommend this.
You could always use imgur or some custom image cdn in that case :)
S
Shaurya Uppal

Method 1->Markdown way

![Alt Text](https://raw.github.com/{USERNAME}/{REPOSITORY}/{BRANCH}/{PATH})

Method 2->HTML way

<img src="https://link(format same as above)" width="100" height="100"/>

or

<img src="https://link" style=" width:100px ; height:100px " />

Note-> If you don't want to style your image i.e resize remove the style part


V
VonC

From March 2021, this is now supported:

Attaching files to markdown files

You can now attach files, including images, to markdown files while you're editing them in the web. This works just like file attachments in issues and pull requests and supports the same file types. Just drag and drag, click and select, or paste. Note: If you add an image to a markdown file, anyone can view the anonymized image URL without authentication, even if the markdown file is in a private repository. To keep images private, serve them from a private network or server that requires authentication. For more information on anonymized URLs see "About anonymized image URLs".


How to customize the width and height of the screenshots?
I
Indrajeet Gour

For me, the relative path worked out very well.

How I did this: In my current md file where I wanted to use a picture from another directory, I used a relative path like this - consider following points.

md file loc: base dir -> _post -> current_file.md

& picture file loc which I wanted to use: base dir -> _asset -> picture_to_use.jpeg

What the statement I used was on current_file.md file:

![your-pic-caption-name](../_asset/picture_to_use.jpeg)

Note - before this, I was using direct _asset but Ideally, it so starts from ../_asset/and-so-no

reference - https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-readmes


R
R Holmes

Add ![ScreenShot](screenshot.png) in the readme markdown as mentioned by many above. Replace screenshot.png with the name of the image you uploaded in your repository.

But here is a newbie tip when you upload the image (as I made this mistake myself):

ensure that your image name does not contain spaces. My original image was saved as "Screenshot day month year id.png". If you don't change the name to something like contentofimage.png, it won't appear as an image in your readme file.


Easiest method by far! I was just about to make this entry myself when I read down far enough to see this excellent answer. They only let me upvote once.
R
Rohullah Nabavi

Please fallow this four step, this worked for me

1-Create a new issue on GitHub. 2-Drag-and-drop an image onto the comment field or upload a photo. 3-Wait for the upload process to finish. 4-Copy the URL and use it in your Markdown files on GitHub (use that generated URL in your repository's readme).


Best to just add it to your repo, not indirectly using an upload from an issue. This way it can be versioned and changed more easily over time as well.
J
Jason R Stevens CFA

I googled a few similar questions and did not see any answers with my problem and its quite simple/easy solution.

Google Cloud Storage - a slightly different approach to images in READMEs

Here goes: like the OP, I wanted an image in my Github README, and, knowing the Markdown syntax for doing so, typed it in:

![My Image](https://storage.cloud.google.com/${MY_BUCKET}/${MY_IMAGE}

You need to complete the actual substitutions above (e.g. MY_IMAGE=image.jpg) for this to work.

But, wait...failure--there's no actual rendered photo! And the link is exactly as given by Google Storage!

Github camo - Anonymous Images

Github hosts your images anonymously, yay! However, this presents an issue for Google storage assets. You need to get the generated url from your Google Cloud Console.

I'm sure there's a smoother way, however, simply visit your given URL endpoint and copy the long URL. Details:

Instructions

Visit your storage console: https://console.cloud.google.com/storage/browser/${MY_BUCKET}?project=${MY_PROJECT} Click on the image you'd like to display in Github (this brings up the "Object Details" page) Copy pasta that URL (the one starting with https not gs) into a new browser tab/window Copy pasta the new generated URL -- it should be longer -- from your new browser tab/window into your Github README file

Hopefully this helps speed up and clarify this issue for anyone else.


FYI -- It appears something is changing on the Google or Github side of things. I've had some images in READMEs failing via this method, and some working as of afternoon March 28, 2020. YMMV here!
Z
Zizoh

First, create a directory(folder) in the root of your local repo that will contain the screenshots you want added. Let’s call the name of this directory screenshots. Place the images (JPEG, PNG, GIF,` etc) you want to add into this directory.

Android Studio Workspace Screenshot

Secondly, you need to add a link to each image into your README. So, if I have images named 1_ArtistsActivity.png and 2_AlbumsActivity.png in my screenshots directory, I will add their links like so:

 <img src="screenshots/1_ArtistsActivity.png" height="400" alt="Screenshot"/> <img src=“screenshots/2_AlbumsActivity.png" height="400" alt="Screenshot"/>

If you want each screenshot on a separate line, write their links on separate lines. However, it’s better if you write all the links in one line, separated by space only. It might actually not look too good but by doing so GitHub automatically arranges them for you.

Finally, commit your changes and push it!


R
Robbie

To me the best way is -

Create an new issue with that repository on github and then upload the file in gif format.To convert video files into gif format you can use this website http://www.online-convert.com/ Submit the newly created issue. Copy the address of the uploaded file Finally in your README file put ![demo](COPIED ADDRESS)

Hope this will help .


How is it different from stackoverflow.com/a/32252663/1570104 ?
M
Marium Jawed

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

![Alt text]("enter image url of repositoryhere") 

P
Pooja Pathak

Create a New issue by clicking on the green button in the upper right corner. Take a screenshot of whatever you need and paste it into the issue message (CMD+V on Mac or CTR+V on Windows).


A
Alphonse Prakash

In README.md:

This approach (with a relative filepath to screenshots/filename.png) assumes your screenshot is part of your repo. For student projects, personal work, and other small stuff, including screenshots in your repo is no biggie.

If you don’t want the screenshot in your repo, you can upload it somewhere else and link to it directly like so:

.png is the preferred file format.


M
Mick Cullen

With the images located in /screen-shots directory. The outer <div> allows the images to be positioned. Padding is achieved using <img width="desired-padding" height="0">.

<div align="center">
        <img width="45%" src="screen-shots/about.PNG" alt="About screen" title="About screen"</img>
        <img height="0" width="8px">
        <img width="45%" src="screen-shots/list.PNG" alt="List screen" title="List screen"></img>
</div>

For the life of me I couldn't figure out to center an image in the README - which your answer contains, so thanks!
I found this answer helpful since it enables you to set the dimensions of the image