使用Python从包含PNG图像的原始向量生成图像。

2024-06-14 16:43:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在R I中,使用以下测试代码创建一个包含PNG图像的原始向量(format=ARGB(640 x 480))

library(Cairo)
library(png)

Cairo(type='raster')
x=seq(0,3,by=0.01)    
y=2*sin(2*pi*(x-1/4))
plot(x,y)  #Test plot
rawdata = writePNG(dev.capture(native=TRUE), raw())
assign("rawpng", rawdata, envir = .GlobalEnv)

结果向量如下:c(89, 50, 4e, 47, 0d, 0a, 1a, 0a, 00, 00, 00, 0d, 49, 48, 44, 52, 00, 00, 02, 80, 00, 00, 01, e0, 08, 06, 00, 00, 00, 35, d1, dc, e4, 00, 00, 20, 00, 49, 44, 41, 54, 78, 9c, ec, dd, 77, af, 5d, ee, cf, 75, 71, 41, d6, 90, 99, e7, ec, b3, 66, 9f, b5, d7, 7a, d6, b3, c0, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc, cc,.................................. b3, b0, fc, 1f, fe, 86, bd, ef, 71, 27, 9e, 88, 00, 00, 00, 00, 49, 45, 4e, 44, ae, 42, 60, 82)

现在我想用原始向量在Python画布上显示图像,但是我似乎不能正确地显示它。使用Rpy2和Pil,我设法生成了一个图像,但它完全是一团糟。在

^{pr2}$

我知道将绘图保存为图像文件并在Python中重新加载要容易得多,但我需要它而不必先保存文件。 有可能吗?在


Tags: 图像formatplotpnglibrary向量ccb3
2条回答

您可以将图像写入StringIO缓冲区(实际上是将图像写入内存中的“文件”),然后从该缓冲区中读取它吗?在

您当前正在使用raw解码器解码。请改为尝试PNG

img = Image.fromstring('RGBA', (640, 480), data.tostring(), 'PNG')

相关问题 更多 >