如何在ipython笔记本中显示PIL图像

 拍友2502875873 发布于 2022-12-14 10:57

这是我的代码

from PIL import Image
pil_im = Image.open('data/empire.jpg')

我想对它进行一些图像处理,然后在屏幕上显示它.
我在python笔记本中显示PIL图像有问题.

我试过了:

print pil_im

只是

pil_im

但两个人都给我:


Anzel.. 126

您可以使用IPython Module: display来加载图像.您可以从Doc中阅读更多内容.

from IPython.display import Image 
Image(filename='data/empire.jpg')

更新

作为OP的要求是使用PIL,如果你想显示内嵌图像,你可以用matplotlib.pyplot.imshownumpy.asarray这样太:

from matplotlib.pyplot import imshow
import numpy as np
from PIL import Image

%matplotlib inline
pil_im = Image.open('data/empire.jpg', 'r')
imshow(np.asarray(pil_im))

如果您只需要预览而不是内联,则可以使用show如下:

pil_im = Image.open('data/empire.jpg', 'r')
pil_im.show()

不要从`IPython.core`导入任何东西它不是稳定的api,我们直接在`IPython.display`中公开了稳定的api.我自己编辑了这篇文章. (5认同)


sathyz.. 31

使用IPython显示在笔记本中渲染PIL图像.

from PIL import Image               # to load images
from IPython.display import display # to display images

pil_im = Image.open('path/to/image.jpg')
display(pil_im)

如果您只想快速检查图像,则可以“退还”它以查看其值,然后该图像将自动显示 (2认同)


WebOrCode.. 19

我发现这很有效

# source: http://nbviewer.ipython.org/gist/deeplook/5162445
from io import BytesIO

from IPython import display
from PIL import Image


def display_pil_image(im):
   """Displayhook function for PIL Images, rendered as PNG."""

   b = BytesIO()
   im.save(b, format='png')
   data = b.getvalue()

   ip_img = display.Image(data=data, format='png', embed=True)
   return ip_img._repr_png_()


# register display func with PNG formatter:
png_formatter = get_ipython().display_formatter.formatters['image/png']
dpi = png_formatter.for_type(Image.Image, display_pil_image)

在此之后,我可以这样做:

pil_im

但这必须是单元格的最后一行,没有print

4 个回答
  • 您可以使用IPython Module: display来加载图像.您可以从Doc中阅读更多内容.

    from IPython.display import Image 
    Image(filename='data/empire.jpg')
    

    更新

    作为OP的要求是使用PIL,如果你想显示内嵌图像,你可以用matplotlib.pyplot.imshownumpy.asarray这样太:

    from matplotlib.pyplot import imshow
    import numpy as np
    from PIL import Image
    
    %matplotlib inline
    pil_im = Image.open('data/empire.jpg', 'r')
    imshow(np.asarray(pil_im))
    

    如果您只需要预览而不是内联,则可以使用show如下:

    pil_im = Image.open('data/empire.jpg', 'r')
    pil_im.show()
    

    2022-12-14 10:57 回答
  • 我发现这很有效

    # source: http://nbviewer.ipython.org/gist/deeplook/5162445
    from io import BytesIO
    
    from IPython import display
    from PIL import Image
    
    
    def display_pil_image(im):
       """Displayhook function for PIL Images, rendered as PNG."""
    
       b = BytesIO()
       im.save(b, format='png')
       data = b.getvalue()
    
       ip_img = display.Image(data=data, format='png', embed=True)
       return ip_img._repr_png_()
    
    
    # register display func with PNG formatter:
    png_formatter = get_ipython().display_formatter.formatters['image/png']
    dpi = png_formatter.for_type(Image.Image, display_pil_image)
    

    在此之后,我可以这样做:

    pil_im
    

    但这必须是单元格的最后一行,没有print

    2022-12-14 10:57 回答
  • 使用IPython显示在笔记本中渲染PIL图像.

    from PIL import Image               # to load images
    from IPython.display import display # to display images
    
    pil_im = Image.open('path/to/image.jpg')
    display(pil_im)
    

    2022-12-14 10:57 回答
  • 案例python3

    from PIL import Image
    from IPython.display import HTML
    from io import BytesIO
    from base64 import b64encode
    
    pil_im = Image.open('data/empire.jpg')
    b = BytesIO()  
    pil_im.save(b, format='png')
    HTML("<img src='data:image/png;base64,{0}'/>".format(b64encode(b.getvalue()).decode('utf-8')))
    

    2022-12-14 10:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有