如何在iRuby内核的Jupyter-lab中通过Ruby代码插入PNG图片?
在Jupyter Lab的iRuby内核中插入生成的PNG图片
在iRuby内核中,有两种常用方式可以将计算生成的PNG图片插入到Jupyter Lab笔记本中,以下是具体实现:
方法1:使用iRuby原生的IRuby.display方法
这是最直接的方式,支持直接传入图片文件对象或二进制数据:
场景1:读取本地生成的PNG文件
如果Ruby代码已将图片保存为本地文件(比如output.png),可直接读取并显示:
IRuby.display(File.open("output.png"), mime_type: "image/png")
场景2:直接渲染内存中的图片数据
如果使用图像处理库(如ChunkyPNG、RMagick)在内存中生成了图片,无需保存到本地即可直接渲染:
# 先安装依赖gem:gem install chunky_png require 'chunky_png' # 生成一张测试图片 img = ChunkyPNG::Image.new(200, 200, ChunkyPNG::Color::WHITE) img[50, 50] = ChunkyPNG::Color::RED img[100, 100] = ChunkyPNG::Color::BLUE # 渲染内存中的图片二进制数据 IRuby.display(img.to_blob, mime_type: "image/png")
方法2:输出Markdown图片标签
iRuby支持直接渲染Markdown内容,这种方式适合自定义图片属性(如尺寸、描述文本)的场景:
场景1:引用本地文件
# 基础Markdown图片标签 puts "" # 自定义图片宽度 puts '<img src="output.png" width="300" alt="计算生成的图片">'
场景2:嵌入Base64编码的图片(无外部文件依赖)
如果不想依赖本地文件,可将图片二进制数据转成Base64编码后嵌入:
require 'base64' # 读取图片并转成Base64编码 img_base64 = Base64.strict_encode64(File.read("output.png")) # 输出嵌入Base64的图片标签 puts ""
内容的提问来源于stack exchange,提问作者Nicola Mingotti
相关产品推荐
相关产品推荐

