Jupyter notebook 如何更改IJulia笔记本中的默认IOContext

Jupyter notebook 如何更改IJulia笔记本中的默认IOContext,jupyter-notebook,julia,jupyter,ijulia-notebook,Jupyter Notebook,Julia,Jupyter,Ijulia Notebook,在IJulia笔记本中,我有一个单元格,它从我的文件系统加载一个图像,然后将其拆分为几个其他图像,但当它们显示时,它们太小了 using Images using FileIO path = "samples/201478670932639746-3.png" img = load(path) height, width = size(img) print((height, width)) lines = [ (@view img[20:55, :]), (@view img

在IJulia笔记本中,我有一个单元格,它从我的文件系统加载一个图像,然后将其拆分为几个其他图像,但当它们显示时,它们太小了

using Images
using FileIO

path = "samples/201478670932639746-3.png"
img = load(path)

height, width = size(img)
print((height, width))
lines = [
    (@view img[20:55, :]),
    (@view img[70:105, :]),
    (@view img[120:155, :]),
    (@view img[155:end, :])
]
结果如下所示:

我已经研究了的html代码和图像:


因此,我阅读了
JuliaImages
的文档,了解图像在笔记本上的显示方式:

我们可以在这里看到,包
ImageShow
用于在笔记本上显示图像 因此,我在github上跳转到包的源代码:

我们可以在这里看到,他们正在
io
中查找
:缩略图
,默认值为
(100100)
我想
io
是笔记本电脑给出的
IOContext


那么,我如何才能在IJulia笔记本的
IOContext
中写入更改缩略图大小的信息呢?

一般来说,更改外部软件包内部函数的默认行为会在版本更改时导致问题,因此请注意ImageShow.jl更新中的损坏!但如果必须,可以重载函数,使代码保持不变,但更改硬编码的内容除外:

using IJulia
using ImageShow

import ImageShow.show_element

const mydim = [(100, 100)]
function ImageShow.show_element(io::IOContext, img)
    io2=IOBuffer()
    w,h=get(io, :thumbnailsize, mydim[1])
    im_resized = ImageShow.downsize_for_thumbnail(img, w, h)
    thumbnail_style = get(io, :thumbnail, false) ? "max-width: $(w)px; max-height:$(h)px;" : ""
    b64pipe=ImageShow.Base64EncodePipe(io2)
    write(io,"<img style='$(thumbnail_style)display:inline' src=\"data:image/png;base64,")
    show(b64pipe, MIME"image/png"(), im_resized)
    write(io, read(seekstart(io2)))
    write(io,"\">")
end

mydim[1] = (500, 500)
使用IJulia
使用ImageShow
导入ImageShow.show\u元素
常量mydim=[(100100)]
函数ImageShow.show_元素(io::IOContext,img)
io2=IOBuffer()
w、 h=获取(io,:缩略图大小,mydim[1])
im\u resized=ImageShow。缩小缩略图的大小(img、w、h)
缩略图样式=获取(io,:缩略图,错误)?“最大宽度:$(w)px;最大高度:$(h)px;”
b64pipe=ImageShow.Base64EncodePipe(io2)
写(io,“”)
结束
mydim[1]=(500500)

通常,更改外部软件包内部功能的默认行为会在版本更改时导致问题,因此请注意ImageShow.jl更新中的损坏!但如果必须,可以重载函数,使代码保持不变,但更改硬编码的内容除外:

using IJulia
using ImageShow

import ImageShow.show_element

const mydim = [(100, 100)]
function ImageShow.show_element(io::IOContext, img)
    io2=IOBuffer()
    w,h=get(io, :thumbnailsize, mydim[1])
    im_resized = ImageShow.downsize_for_thumbnail(img, w, h)
    thumbnail_style = get(io, :thumbnail, false) ? "max-width: $(w)px; max-height:$(h)px;" : ""
    b64pipe=ImageShow.Base64EncodePipe(io2)
    write(io,"<img style='$(thumbnail_style)display:inline' src=\"data:image/png;base64,")
    show(b64pipe, MIME"image/png"(), im_resized)
    write(io, read(seekstart(io2)))
    write(io,"\">")
end

mydim[1] = (500, 500)
使用IJulia
使用ImageShow
导入ImageShow.show\u元素
常量mydim=[(100100)]
函数ImageShow.show_元素(io::IOContext,img)
io2=IOBuffer()
w、 h=获取(io,:缩略图大小,mydim[1])
im\u resized=ImageShow。缩小缩略图的大小(img、w、h)
缩略图样式=获取(io,:缩略图,错误)?“最大宽度:$(w)px;最大高度:$(h)px;”
b64pipe=ImageShow.Base64EncodePipe(io2)
写(io,“”)
结束
mydim[1]=(500500)