python爬网络图片脚步_关于python:如何从本地计算机或网络资源将图像或图片嵌入jupyter笔记本中?...

本文介绍了在Jupyter笔记本中展示图像的各种方法,包括使用Markdown语法、HTML标签、Python代码及直接拖拽插入图像等技巧。
部署运行你感兴趣的模型镜像

我想将图像包括在Jupyter笔记本中。

如果执行以下操作,则可以正常工作:

from IPython.display import Image

Image("img/picture.png")

但我想将图像包含在markdown单元格中,以下代码给出404错误:

![title]("img/picture.png")

我也试过

![texte]("http://localhost:8888/img/picture.png")

但是我仍然遇到同样的错误:

404 GET /notebooks/%22/home/user/folder/img/picture.png%22 (127.0.0.1) 2.74ms referer=http://localhost:8888/notebooks/notebook.ipynb

在markdown中,请勿在图像文件名称的前后加上引号!

如果您仔细阅读错误消息,您将在链接中看到两个%22部分。那是html编码的引号。

你必须换线

![title]("img/picture.png")

![title](img/picture.png)

更新

假定您具有以下文件结构,并且您在存储文件example.ipynb(jupyter notebook命令:

/

+-- example.ipynb

+-- img

+-- picture.png

对我来说,将笔记本下载为html时,这不起作用。它显示了损坏的图像链接。按预期使用IPython.display.Image。

@cheflo上面的语法不会将图像嵌入html文件中。如果查看html文件的源代码,则会找到类似

的条目。要查看图片,您必须将其复制到文件夹img的html文件中。

我怀疑情况就是如此,感谢您的澄清。我认为这两种方法之间的差异是出乎意料的,至少对于我来说,确定了选择哪种方法,因此我想引起注意。

通过markdown进行操作时,请确保图像文件位于笔记本计算机所在的目录中,出于某种奇怪的原因(在我的情况下),jupyter-notebook未被说服在完整路径上工作... ![title](picture.png)

当我执行或![Annotation Examples](pyplot_annotation.png)时,我得到的只是Annotation Examples并且没有图像。 pyplot_annotation.png与ipynb文件位于同一目录中。

我找到了解决我问题的答案:stackoverflow.com/questions/40527191/

@ArunKumarKhattri-有相同的问题,只有笔记本的重复路径有效-就我而言:![title](../ img / picture.png)

这不能按原样工作。要对此做出可靠的回答,需要对相对路径进行更多研究。

@javadba您可以指定您的问题吗?

问题是Jupyter机器上的本地路径将文件放置在何处,以便可以通过演示的方式对其进行访问?

@SergeyShcherbakov如果在笔记本所在的路径中运行jupyter notebook命令,则必须将图像放在名称为img的该路径的子目录中。

谢谢@SebastianStigler,它起作用了。将此详细信息添加到您的答案中将是很好的。

阿伦·库马尔·哈特里(Arun Kumar Khattri)说的很重要! Jupyter Notebook没有考虑完整路径。因此,它必须位于与内核相同的目录中,或者位于子目录中。但是,Id绝对建议您使用html语法,因为这样您就可以指定更多属性,例如图像的尺寸。

也请参阅@Reblochon Masque的第二个答案;它更彻底

有几种方法可以在Jupyter笔记本中发布图像:

通过HTML:

from IPython.display import Image

from IPython.core.display import HTML

Image(url="http://my_site.com/my_picture.jpg")

您保留使用HTML标签调整大小等的功能。

Image(url="http://my_site.com/my_picture.jpg", width=100, height=100)

您还可以通过相对或绝对路径显示本地存储的图像。

PATH ="/Users/reblochonMasque/Documents/Drawings/"

Image(filename = PATH +"My_picture.jpg", width=100, height=100)

如果图像宽于显示设置:谢谢

使用unconfined=True禁用图像的最大宽度限制

from IPython.core.display import Image, display

display(Image('https://i.ytimg.com/vi/j22DmsZEv30/maxresdefault.jpg', width=1900, unconfined=True))

或通过降价:

(请确保该单元格是降价单元格,而不是代码单元格,谢谢@游凯超的评论)

对于网络图像:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)

如@cristianmtr所示

注意不要在URL中使用这些引号""或那些''。

或本地的:

![title](img/picture.png)

由@Sebastian演示

的确,调整图片大小的可能性很有趣。但是对于将来的渲染,降价对我来说更好。

您可以通过markdown放置具有绝对路径的本地路径吗?我试过了,但似乎没有用。编辑:Firefox(和Chrome)不允许访问本地文件以确保安全

@CiprianTomoiag?你什么意思 ? chrome / ff可以显示本地文件

我的意思是,如果该路径不在启动jupyter的树下,则无法显示它。例如!tmp_img。我认为在某些情况下,我在chrome控制台中收到了一些权限警告

为什么不工作。做Yaktocat的图像时,我得到/ bin / sh:1:语法错误:"("意外

您能否具体说明您无法完成的工作?

@SwimBikeRun,您应该选择正确的单元格类型。您当前的单元格类型必须是代码

已经很长了,但是如果我的文件名包含空格怎么办?像test 1.png一样?

在macOS上,只要您位于降价单元中,您就会这样:![title](..image 1.png),而不用担心空白-在Windows上,我不知道。

当心路径,在本地有效的方法无法在线使用,.e。 imgs\pic.png在本地工作,在线时为1:区分大小写(Pic.png)2:后退和斜杠不同...:/

被低估的答案。很彻底

另外,您可以使用纯HTML ,它允许您更改高度和宽度,并仍由markdown解释器读取:

大!我非常喜欢这个答案,因为我们可以控制输出大小!例如,当使用鹈鹕工具将jupyter笔记本发布为静态html页面时,这很重要。

HTML不需要逗号-只需在属性之间放置一个空格-并建议将所有属性值都用引号引起来,例如width="60"。

神圣的这太棒了

除了使用HTML的其他答案(在Markdown中或使用%%HTML魔术:

如果您需要指定图像高度,则将无法使用:

这是因为Jupyter中的CSS样式默认为img标签使用height: auto标记,该标记会覆盖HTML height属性。您需要改写CSS height属性:

我很惊讶这里没有人提到html cell magic选项。

来自文档(IPython,但与Jupyter相同)

%%html

Render the cell as a block of HTML

我知道这并不完全相关,但是由于当您搜索"如何在Jupyter中显示图像"时,此答案在很多时候都排在第一位,因此也请考虑此答案。

您可以使用matplotlib如下显示图像。

import matplotlib.pyplot as plt

import matplotlib.image as mpimg

image = mpimg.imread("your_image.png")

plt.imshow(image)

plt.show()

如果要使用Jupyter Notebook API(现在不再使用IPython),则可以找到ipywidgets Jupyter的子项目。您有一个Image小部件。 Docstring指定您有一个value参数,它是一个字节。因此,您可以执行以下操作:

import requests

from ipywidgets import Image

Image(value=requests.get('https://octodex.github.com/images/yaktocat.png').content)

我同意,使用Markdown样式更简单。但是它向您显示了图像显示Notebook API。您还可以使用width和height参数调整图像的大小。

对于本地存储的图像,它将如何工作?

同时,选项value似乎已重命名为data。对于本地存储的图像,代码Image(data=open(filename_png, rb).read())为我工作。

使用Markdown的方法如下:

![Image of Yaktocat](https://octodex.github.com/images/yaktocat.png)

由于某些原因,通过markdown显示图像对我不起作用...您确定语法正确cristianmtr吗?

是的,再次测试一下。您确定将单元格设置为Markdown吗?另外,您正在使用哪个版本的IPython / Jupyter? Mine说:"笔记本电脑服务器的版本是4.0.4,并且运行在:Python 2.7.8(默认值,2014年6月30日,16:08:48)[MSC v.1500 64位(AMD64)]"结果的屏幕截图:i.imgur.com/4ISJFDE.png

当心路径,在本地有效的方法无法在线使用,.e。 imgs pic.png在本地工作,在线则为1:区分大小写(Pic.png)2:后退和斜杠不相同...:/ –

将图像直接插入Jupyter笔记本中。

注意:您应该在计算机上拥有图像的本地副本

您可以将图像插入Jupyter笔记本本身。这样,您无需将图像单独保存在文件夹中。

脚步:

通过以下方式将单元格转换为markdown:

在所选单元格上按M

要么

在菜单栏中,单元格>单元格类型>降价。

(注意:将单元格转换为Markdown很重要,否则,第2步中的"插入图片"选项将无效)

现在转到菜单栏,然后??选择编辑->插入图像。

从磁盘中选择图像并上传。

按Ctrl + Enter或Shift + Enter。

这将使图像成为笔记本的一部分,您无需在目录或Github中上传。我觉得这看起来更干净,而且不容易出现URL损坏的问题。

这是Jupyter和Python3的解决方案:

我将图像放在名为ImageTest的文件夹中。

我的目录是:

C:\Users\MyPcName\ImageTest\image.png

为了显示图像,我使用了以下表达式:

![title](/notebooks/ImageTest/image.png"ShowMyImage")

还要注意/和\

这在降价单元中对我有用。无论如何,如果图像或简单文件,我都无需特别提及。

![](files/picture.png)

与塞巴斯蒂安·斯蒂格勒斯的回答有何不同?

只是想强调一下它对我有用,而没有在方括号中包含标题。没什么

我发现的一件事是,图像的路径必须与笔记本计算机最初加载的位置有关。如果cd到其他目录,例如Pictures,则Markdown路径仍相对于原始加载目录。

将单元格模式设置为降价

将图像拖放到单元格中。将创建以下命令:

![image.png](attachment:image.png)

执行/运行单元格,图像出现。

该图像实际上是嵌入在ipynb笔记本中的,您无需弄乱单独的文件。不幸的是,这还不适用于Jupyter-Lab(v 1.1.4)。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值