image - 如何使用 Julia 将数组保存到 RAM 中的 PNG 图像?

标签 image julia

将图像保存到 PNG 文件不是问题,以下代码可以正常工作(使用 Julia 1.5、FileIO 1.4.1 和 ImageIO 0.3.0):

using FileIO

image = rand(UInt8, 200, 150, 3)
save("test.png", image)

但是,我找不到如何将 PNG 图像保存到 RAM 缓冲区。我试过这个:

io = IOBuffer()
save(Stream(format"PNG", io), image)
data = take!(io)

没有错误,但生成的数据太小:只有 809 字节(而不是 test.png 文件的大约 90kB)。

我做错了什么?

最佳答案

您的 I/O 代码是正确的,但您错误地生成了随机图像。

应该是:

using Images
image = [RGB(rand(N0f8,3)...) for x in 1:200, y in 1:150]

现在 png 文件和缓冲区将具有相同的字节大小(由于 png 被压缩,确切的数字将随着每次随机运行而变化):

julia> save(Stream(format"PNG", io), image)
90415

关于image - 如何使用 Julia 将数组保存到 RAM 中的 PNG 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63555097/

相关文章:

html - 调整浏览器大小时对齐失败

javascript - 如何将 <img> 标签的图像检索到 javascript 中的变量中?

c++ - 将C++成员初始化构造函数转换为Julia

optimization - 在 Julia 中使用导入的 Scipy 函数时出现语法错误

julia - plots.jl 中是否有任何 ax.view_init(elev, azim) 等效函数?

arrays - Julia 字符数组转字符串

machine-learning - 使用 evaluate!() 时的 MLJ 预测类型确定性错误

php - 将文本转换为图像 - PHP/GD - 保存图像

ios - 设置 ImageView 的位置

java - 在单个图像中检测多个图像