【问题标题】:How to add images to README.md on GitHub?如何将图像添加到 GitHub 上的 README.md?
【发布时间】:2013-01-07 19:40:18
【问题描述】:

最近我加入了 GitHub。我在那里主持了一些项目。

我需要在我的 README 文件中包含一些图像。我不知道该怎么做。

我对此进行了搜索,但我得到的只是一些链接,这些链接告诉我“在网络上托管图像并在 README.md 文件中指定图像路径”。

有没有办法在不将图像托管在任何第三方网络托管服务上的情况下做到这一点?

【问题讨论】:

标签: github markdown github-flavored-markdown readme


【解决方案1】:

试试这个降价:

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

如果图像存储在您的存储库中,我认为您可以直接链接到图像的原始版本。即

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

【讨论】:

  • 你也应该考虑使用relative links
  • 相对链接在这里用处不大,想象一下你的自述文件也显示在不以这种方式托管图像的 npm 上——它需要链接到 GitHub。图片来源应位于github.com 域,而不是raw.github.com 子域和raw.githubusercontent.com 域。
  • 我实际上最终选择了相对路径(对我来说这只是图像文件的名称,因为我在根目录中拥有所有内容)。我一直在维护 README.md 的 2 份副本,一份用于本地安装在 /usr/share/projectname/docs 中,一份用于 github。现在,我可以对两者都使用相同的 README.md,因为图像文件名在这两种情况下都可以正常工作。如果我想在其他地方发布部分自述文件的副本,我要么必须将图像托管在其他地方,要么放入 raw.github.com 网址。
  • GitHub 自己推荐相对路径:help.github.com/articles/relative-links-in-readmes 绝对路径的一个主要缺点是,如果图像在 master 中移动,仍然指向旧 URL 的其他分支将会中断。
  • 当前建议的域似乎不起作用,链接应该是这样的:https://github.com/[username]/[reponame]/blob/[branch]/image.jpg?raw=true
【解决方案2】:

你也可以使用相对路径

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

还可以使用所需的.fileExtention 尝试以下操作:

![plot](./directory_1/directory_2/.../directory_n/plot.png)

【讨论】:

  • 是的。除非您担心性能,否则这是迄今为止最简单的方法。我注意到这是相对于 directory 而不是 repo,所以如果你有 'myimage .png' 在与 'about_pics.md' 相同的目录中,则标记为:![What is this](myimage.png)
  • 这是一个很棒的解决方案,因为 1)它可以工作 2)图像也显示在本地查看器中,无需访问互联网
  • @Rich 您能否详细说明您对性能的评论。相对路径方法存在哪些性能问题?
  • 这个路径是相对于什么的?
  • 正如 Lee Crossley 所指出的,您应该避免相对链接,因为当您的自述文件显示在 npm 上时它们会中断。相反,如果图像格式类似于 SVG,则使用“?sanitize=true”标志链接到 github.com 域上的图像 src。在这个 SO 答案中查看更多详细信息:stackoverflow.com/a/16462143/6798201
【解决方案3】:
  • 您可以创建一个新问题
  • 上传(拖放)图片到它
  • 复制图片 URL 并将其粘贴到您的 README.md 文件中。

这是一个详细的 YouTube 视频,详细解释了这一点:

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

【讨论】:

  • 据我了解,您实际上并不需要保存该问题。这样,您就不需要问题跟踪器中的那些虚拟票证。问题是这是否是一种“安全”的方法,这意味着 GitHub 是否会(在一段时间后)检测到该图像是孤立的并因此将其从 GitHub CDN 中删除??
  • 这个答案对我来说非常有效,不需要在回购中保存新问题。我在 Youtube 上找到了一个视频,详细解释了这一点:youtube.com/watch?v=nvPOUdz5PL4
  • 这个答案有效,并且需要很少的努力。可以放弃该问题,但图像的 URL 仍然存在。图片 URL 格式为:user-images.githubusercontent.com...
  • 这是一个绝妙的技巧!但是有人知道@peterh 问题的答案吗? GitHub 会定期清除孤立的图像(即没有附加问题)吗?
  • @JohnnyOshika 我怀疑 github 之外的任何人都可以明确回答这个问题。它可能取决于“user-images.githubusercontent.com”的用途。如果仅针对上传到 cmets 的图像,那么他们可以扫描丢失的数据关系并删除图像是合理的。如果它更笼统,则可能很难确定没有对该文件的引用,这使得确定可以毫无问题地删除它在计算上或具有挑战性。
【解决方案4】:

比这简单得多。

只需将您的图像上传到存储库根目录,并链接到不带任何路径的文件名,如下所示:

![Screenshot](screenshot.png)

【讨论】:

  • 不,我不认为将屏幕截图添加到 git repo 是一个好习惯。尤其是不在根源上。 Ahmad Ajmi 的回答要好得多
  • 不在根目录,但您可以轻松地将其调整为 docs/images 或其他任何情况,恕我直言,小 png 屏幕截图还可以
  • 这应该是公认的解决方案,尤其是。 Christophe 建议将图像放在 doc/ tree/ 下
  • 完美..!!如果 png 在另一个文件夹中。只需添加路径“folderName/screenshot.png”
  • 我发现您的回答对我的案例很有用:我在 Gitlab 上,我使用回购根目录中的 logo.png 图片为回购设置头像。我想将这张图片包含在 README.md 中。
【解决方案5】:

你也可以用简单的HTML标签添加图片:

<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>

【讨论】:

  • 当您在 Markdown 文件中使用 HTML 标记时。通用文档转换器 Pandoc 将忽略它。
  • 这是最好的,这样它可以居中或放置在一侧(至少对于较小的图像。)
  • 如何指定相对路径?它与 README.md 无关(在所有情况下?)。
【解决方案6】:

许多已发布的解决方案不完整或不合我的口味。

  • 像 imgur 这样的外部 CDN 向链中添加了另一个工具。嗯。
  • 在问题跟踪器中创建一个虚拟问题是一种 hack。它会造成混乱并使用户感到困惑。将此解决方案迁移到 fork 或 GitHub 外很痛苦。
  • 使用 gh-pages 分支会使 URL 变得脆弱。另一个在维护 gh-page 的项目上工作的人可能不知道外部的东西取决于这些图像的路径。 gh-pages 分支在 GitHub 上有一个特殊的行为,这对于托管 CDN 图像不是必需的。
  • 在版本控制中跟踪资产是件好事。随着项目的发展和变化,它是一种更可持续的方式来管理和跟踪多个用户的变化。
  • 如果图像适用于软件的特定版本,则最好链接不可变图像。这样,如果稍后更新映像以反映对软件的更改,任何阅读该修订版自述文件的人都会找到正确的映像。

this gist 启发,我首选的解决方案是使用assets 分支,并带有特定修订的永久链接

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.

为这个版本的图像构建一个“永久链接”,并将其包装在 Markdown 中。

但是,手动查找提交 SHA 很不方便,因此作为快捷方式按 Y 可以永久链接到特定提交中的文件as this help.github page says.

要始终在资产分支上显示最新图像,请使用 blob URL:

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

(来自同一 GitHub 帮助页面 File views show the latest version on a branch

【讨论】:

  • 这是对已接受答案的一个很好的补充。资产被跟踪,图像不在母版中,没有混乱。请注意git reset --hard;确保更改已提交。
  • 在你的机器上运行。您可以将其指向文件所在的任何位置(~/Downloads/tmp 等)。
  • 我发誓我记得有一个你可以制作的目录在 Github 上没有显示。在我能找到它之前,这篇文章似乎是下一个最好的使用方法。谢谢!
  • 我不明白为资产创建新分支有什么好处。为什么不将资产与使用这些资产的文件放在同一个分支中?
  • 这样就不会那么杂乱了。
【解决方案7】:
在文件夹 (myFolder) 中

提交您的图像 (image.png) 并在您的 README 中添加以下行。 md

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

【讨论】:

    【解决方案8】:

    我需要在我的 README 文件中包含一些图片。我不知道怎么做 这样做。

    我创建了一个小向导,允许您为 GitHub 存储库的自述文件创建和自定义简单的图片库:请参阅 ReadmeGalleryCreatorForGitHub

    该向导利用了 GitHub 允许 img 标签出现在 README.md 中这一事实。此外,该向导还利用了流行的技巧,即通过将图像拖放到问题区域中来将图像上传到 GitHub(如本主题的一个答案中所述)。

    【讨论】:

    • 喜欢这个工具!
    • 我也很喜欢这个工具,这应该是Git的默认功能!!
    • 这太棒了!
    • 这太棒了!
    【解决方案9】:

    您也可以像任何其他格式一样在降价文件中插入animated SVG images
    它可以很好地替代 GIF 图片。

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

    示例(假设图像在存储库的assets 目录中):

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

    结果:

    【讨论】:

      【解决方案10】:
      • 创建有关添加图像的问题
      • 通过拖放或文件选择器添加图像
      • 然后复制图片源

      • 现在将 ![alt tag](http://url/to/img.png) 添加到您的 README.md 文件中

      完成!

      或者,您可以使用一些图像托管网站,例如 imgur,并获取它的 url 并将其添加到您的 README.md 文件中,或者您也可以使用一些静态文件托管。

      Sample issue

      【讨论】:

      • 我认为这是添加它们的最简单方法。只需将它们拖入框中,复制地址并将其粘贴到您的自述文件中,并附上下面的标题。砰,你完成了。
      【解决方案11】:

      基本语法

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

      这里:

      1. my-image-alt-tag : 如果图片未显示,将显示的文本。
      2. url-to-image :无论您的图像资源是什么。图片的 URI

      示例:

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

      这将如下所示:

      【讨论】:

        【解决方案12】:

        只需将&lt;img&gt; 标记添加到您的 README.md 中,并在您的存储库中添加相对 src。如果您不使用相对 src,请确保服务器支持 CORS。

        它之所以有效是因为 GitHub 支持 inline-html

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

        关注here

        【讨论】:

          【解决方案13】:

          您现在可以在编辑自述文件时拖放图像。

          Github 会为你创建一个链接,格式如下:

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

          或者,在文件底部显示“通过拖放、选择或粘贴附加文件”。如果你点击那个,它会给你一个直接上传文件的选项,或者你可以直接粘贴它!

          【讨论】:

            【解决方案14】:

            一步一步的过程, 首先创建一个文件夹(命名您的文件夹)并在 Readme.md 文件中添加您要上传的图像/图像。 (您还可以在项目的任何现有文件夹中添加图像/图像。) 现在,点击Readme.md文件的编辑图标,然后

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

            添加图片后,您可以在“预览更改”选项卡中看到更改的预览。您将在此处找到您的图片。 例如像这样, 就我而言,

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

            app 文件夹 -> src 文件夹 -> 主文件夹 -> res 文件夹 -> drawable 文件夹 -> 并在 drawable 文件夹中找到 refrence_image.png 文件。 要添加多个图像,您可以这样做,

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

            注意 1 - 确保您的图像文件名不包含任何空格。如果它包含空格,那么您需要为文件名之间的每个空格添加 %20。最好去掉空格。

            注意 2 - 您甚至可以使用 HTML 标记调整图像大小,或者还有其他方法。你可以用谷歌搜索更多。 如果你需要的话。

            在此之后,编写您的提交更改消息,然后提交您的更改。

            还有很多其他的技巧,比如创建问题等等。到目前为止,这是我遇到的最好的方法。

            【讨论】:

            • 添加更多这样的图像对我不起作用。有没有其他方法可以做到这一点?
            • 强烈建议添加替代文本,以使使用屏幕阅读器的人更容易访问内容
            【解决方案15】:

            用桌子脱颖而出,别具一格的魅力

            表格语法是:

            用符号|分隔每一列单元格

            表头(第一行)第二行---


            |第 1 列      |第 2 列      |
            |------------|----------------|
            |图片 1 |图 2 |

            输出


            如果您使用两张图片,现在只需将&lt;img src="url/relativePath"&gt; 放在图片 1 和图片 2 上


            注意:如果使用多张图片只是包含更多的列,您可以使用 width 和 height 属性使其看起来可读。

            示例


            |第 1 列      |第 2 列      |
            |------------|----------------|
            | &lt;img src="https://media.wired.com/photos/5926db217034dc5f91becd6b/master/w_582,c_limit/so-logo-s.jpg" width="250"&gt; | &lt;img src="https://mk0jobadderjftub56m0.kinstacdn.com/wp-content/uploads/stackoverflow.com-300.jpg" width="250"&gt; |

            间距无关紧要

            输出图像

            帮助:adam-p

            【讨论】:

            • 表格的使用与OP问题的主题无关。
            • 添加应用程序的屏幕截图可以很好地完成,谢谢
            • 使用 CSS 而不是表格,它会震撼你的世界。
            【解决方案16】:

            你可以使用

            ![A test image](image.png)
            

            ![A test image] 是您的替代文字,(image.png) 是图片的链接。


            您可以将图像放在云服务或其他在线图像托管平台上 或者,如果它在存储库中,您可以提供存储库中的图像链接


            您还可以在存储库中创建一个专用于自述文件图像的特定文件夹

            【讨论】:

              【解决方案17】:

              在新的 Github UI 中,这对我有用 -

              示例 - 在文件夹 (myFolder) 中提交您的 image.png 并在您的 README.md 中添加以下行:

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

              【讨论】:

                【解决方案18】:

                你可以这样做:

                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
                

                然后你可以像这样在README 文件中引用它:

                ![diagram](diagram.png)

                【讨论】:

                • 完美而清脆。
                • 它有效,实际上,我认为这个答案应该被接受
                【解决方案19】:

                就是这样!

                注意标签中的文件名大写,并将PNG文件放入根目录,并链接到文件名而不带任何路径:

                ![Screenshot](screenshot.png)
                

                【讨论】:

                • 这里 (screenshot.png) 是 readme.md 文件的相对路径。例如,我有 (images/landing_page.png)
                【解决方案20】:

                非常简单:可以使用 Ctrl + C/V 完成

                这里的大多数答案直接或间接涉及将图像上传到其他地方然后提供指向它的链接。

                只需复制任何图像并在编辑 Readme.md 时将其粘贴即可完成

                • 复制图片 - 您只需点击图片文件并使用Ctrl + C 或使用截图工具将截图图片复制到剪贴板
                • 然后您可以在编辑 Readme.md 时简单地执行 Ctrl + V

                Guithub 会自动将其上传到 user-images.githubusercontent.com 并在其中插入指向它的链接

                【讨论】:

                • 真的是最有用的答案。即使我正在寻找这个,但我得到的大多数答案都涉及在问题/回购等地方上传图像并提供指向它的链接。这个真的很有帮助!
                【解决方案21】:

                我通常在网站上托管图片,这可以链接到任何托管图片。把这个扔到自述文件中。适用于.rst 文件,不确定.md

                .. image:: https://url/path/to/image
                   :height: 100px
                   :width: 200 px
                   :scale: 50 %
                

                【讨论】:

                  【解决方案22】:

                  就我而言,我使用imgur 并以这种方式使用直接链接。

                  ![img](http://i.imgur.com/yourfilename.png)
                  

                  【讨论】:

                    【解决方案23】:

                    您可以使用备用 github CDN 链接从 README.md(或外部)链接到项目中的图像。

                    网址将如下所示:

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

                    我的项目中有一个 SVG 图像,当我在 Python 项目文档中引用它时,它没有呈现。

                    项目链接

                    这是文件的项目链接(不渲染为图像):

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

                    嵌入图片示例:

                    原始链接

                    这是文件的 RAW 链接(仍然不呈现为图像):

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

                    嵌入图片示例:

                    CDN 链接

                    使用 CDN 链接,我可以使用(呈现为图像)链接到文件:

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

                    嵌入图片示例:

                    这就是我能够在我的 README.md 文件和我的 PyPi 项目 reStructredText doucmentation (here) 中使用我项目中的图像的方式

                    【讨论】:

                      【解决方案24】:

                      我已经解决了这个问题。你只需要参考别人的自述文件即可。

                      首先,您应该将图像文件上传到github代码库!然后直接引用图片文件的地址。



                      【讨论】:

                        【解决方案25】:

                        有两种简单的方法可以做到这一点,

                        1) 使用 HTML img 标签,

                        2) ![](图片保存路径/image-name.png)

                        当您打开该图像时,您可以从浏览器中的 URL 复制路径。 可能会出现间距问题,因此请确保两个单词路径或图像名称 add-> %20 中是否有空格。就像浏览器一样。

                        两者都可以,如果你想了解更多可以查看我的 github -> https://github.com/adityarawat29

                        【讨论】:

                        • 这对我有用。在我使用过的 README.md 下的文件夹“apps”中有一张图片:![](images/ss_apps.png)
                        • 令我惊讶的是,只有 Aditya 提到了空格是一个问题,而且还以一种相当愚蠢的方式 - 没有错误,但是您的语法只是简单地显示,就好像根本不存在这样的功能。提到这一点,请为我点赞。
                        【解决方案26】:

                        此答案也可以在以下位置找到: https://github.com/YourUserAccount/YourProject/blob/master/DirectoryPath/ReadMe.md

                        显示来自 repo 的图片:

                        前置域:https://raw.githubusercontent.com/

                        附加标志:?sanitize=true&amp;raw=true

                        使用&lt;img /&gt;标签

                        示例 url 适用于 svg、png 和 jpg,使用:
                        • raw.githubusercontent.com/
                        • 用户名YourUserAccount/
                        • 回购YourProject/
                        • 分公司YourBranch/
                        • 路径DirectoryPath/
                        • 文件名example.png

                        适用于 SVG、PNG 和 JPEG

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

                        使用后的工作示例代码如下所示:

                        **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

                        谢谢: - https://stackoverflow.com/a/48723190/1815624 - https://github.com/potherca-blog/StackOverflow/edit/master/question.13808020.include-an-svg-hosted-on-github-in-markdown/readme.md

                        【讨论】:

                        【解决方案27】:

                        在我的例子中,我想在GithubNPM 上显示一个打印屏幕。即使使用相对路径在Github 内工作,它也不能在它之外工作。基本上,即使我也将我的项目推送到NPM(它只是使用相同的readme.md,图像从未显示。

                        我尝试了几种方法,最后这对我有用:

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

                        我现在可以在 NPM 或其他任何我可以发布我的包的地方正确地看到我的图像。

                        【讨论】:

                          【解决方案28】:

                          如果您需要上传一些图片作为文档,一个不错的方法是使用git-lfs。假设您已经安装了 git-lfs,请按照以下步骤操作:

                          1. 为您的每种图像类型初始化 git lfs:

                            git lfs *.png
                            git lfs *.svg
                            git lfs *.gif
                            git lfs *.jpg
                            git lfs *.jpeg
                            
                          2. 创建一个将用作图像位置的文件夹,例如。 doc。在基于 GNU/Linux 和 Unix 的系统上,这可以通过以下方式完成:

                            cd project_folder
                            mkdir doc
                            git add doc
                            
                          3. 将所有图像复制粘贴到 doc 文件夹中。然后通过git add 命令添加它们。

                          4. 提交并推送。

                          5. 图片可在以下网址公开获取:

                            https://media.githubusercontent.com/media/^github_username^/^repo^/^branch^/^repo 中的image_location^

                          在哪里: * ^github_username^ 是github中的用户名(可以在个人资料页面找到) * ^repo_name^ 是存储库名称 * ^branch^是图片上传的仓库分支 * ^image_location in the repo^ 是包含图片所在文件夹的位置。

                          您也可以先上传图片,然后访问项目 github 页面中的位置并导航,直到找到图片,然后按 download 按钮,然后从浏览器的地址栏中复制粘贴 url。

                          从我的项目中查看this 作为参考。

                          然后你可以使用上面提到的markdown语法使用url来包含它们:

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

                          例如:假设我们使用this photo 那么你可以使用markdown语法:

                          ![In what order to compile the files](https://media.githubusercontent.com/media/pc-magas/myFirstEnclave/master/doc/SGX%20Compile%20workflow.png)
                          

                          【讨论】:

                            【解决方案29】:

                            我只是在已接受的答案中扩展或添加示例。

                            将图像放入 Github 存储库后。

                            然后:

                            • 在浏览器上打开相应的 Github 存储库。
                            • 导航到目标图像文件然后只需在新选项卡中打开图像。
                            • 复制网址
                            • 最后将url插入到以下模式![alt text](https://raw.githubusercontent.com/username/projectname/branch/path/to/img.png)

                            我的情况是

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

                            在哪里

                            • shadmazumder 是我的username
                            • Xcodeprojectname
                            • masterbranch
                            • InOnePicture.pngimage,在我的情况下,InOnePicture.png 在根目录中。

                            【讨论】:

                            • 这是唯一一个对我来说完美无缺的。没有混淆路径,“master”是指目录还是分支,根目录在哪里等等。唯一需要注意的是 Firefox(72)不允许您在单独的选项卡中打开图像,所以这只是 Chrome 现在我想想。
                            【解决方案30】:

                            最新

                            Wiki 可以显示 PNG、JPEG 或 GIF 图像

                            现在你可以使用了:

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

                            -或-

                            按照以下步骤操作:

                            1. 在 GitHub 上,导航到存储库的主页。

                            2. 在您的存储库名称下,单击 Wiki。

                            3. 使用 wiki 侧边栏,导航到要更改的页面,然后单击编辑。

                            4. 在 wiki 工具栏上,点击图片

                            5. 在“插入图片”对话框中,输入图片网址和替代文本(搜索引擎和屏幕阅读器使用)。

                            6. 点击确定。

                            请参考Docs

                            【讨论】:

                              猜你喜欢
                              • 2019-02-03
                              • 2012-08-18
                              • 2020-07-19
                              • 2020-09-24
                              • 1970-01-01
                              • 1970-01-01
                              • 2012-07-15
                              相关资源
                              最近更新 更多