我希望根据计算出的像素值绘制图像,以可视化某些数据。本质上,我希望采用彩色三元组的二维矩阵并将其渲染。
请注意,这不是图像处理,因为我既不变换现有图像也不做任何形式的全图像变换,它也不是矢量图形,因为我要渲染的图像没有预定的结构,我可能一次要产生一个像素的无定形斑点。
我现在需要渲染大约1kx1k像素的图像,但是可伸缩的东西会很有用。最终目标格式为PNG或任何其他无损格式。
目前,我一直在通过ImageDraw的draw.point使用PIL,我想知道,鉴于我需要的非常具体且相对基本的功能,是否有可用的更快的库?
如果有numpy
并且scipy
可用(并且如果要在Python中操作大型数组,我会推荐它们),那么该scipy.misc.pilutil.toimage
函数非常方便。一个简单的例子:
import numpy as np
import scipy.misc as smp
# Create a 1024x1024x3 array of 8 bit unsigned integers
data = np.zeros( (1024,1024,3), dtype=np.uint8 )
data[512,512] = [254,0,0] # Makes the middle pixel red
data[512,513] = [0,0,255] # Makes the next pixel blue
img = smp.toimage( data ) # Create a PIL image
img.show() # View in default viewer
令人高兴的是很好地toimage
处理了不同的数据类型,因此将2D浮点数数组合理地转换为灰度等。
您可以下载numpy
并scipy
从这里。或使用点子:
pip install numpy scipy
问题内容: 我正在用Python建立照片库,希望能够快速为高分辨率图像生成缩略图。 为各种图像源生成高质量缩略图的最快方法是什么? 我应该使用像imagemagick这样的外部库,还是有一种有效的内部方法来做到这一点? 调整大小后的图像的尺寸为(最大尺寸): 质量是一个问题,因为我想保留尽可能多的原始颜色并最大程度地减少压缩伪影。 谢谢。 问题答案: 您想要PIL轻松做到这一点 如果您迫切需要速度
问题内容: 我想知道如何使用pygame绘制图像。我知道如何加载它们。我做了一个空白的窗口。当我使用时,它不会绘制图像,而是将屏幕留空。 问题答案: 这是一个典型的布局:
问题内容: 我在netbeans平台上制作了App。我想绘制直方图。我有红色,绿色和蓝色的图像像素。因此,请任何人对我提出建议,如何使用该像素值绘制直方图?我的代码在下面,其中我使用图像的红色,绿色和蓝色像素值。 问题答案:
我有一个包含坐标的.csv文件,我需要在我做过的地图上使用python绘制它们。有人能帮我吗?
> 我有一张NxM大小的原始图像(FigureB-它是原始图像的蓝色香奈儿),从这张图像中我选择一个特定的区域来研究(NewfigureB),大小120x170; 然后我将这个区域划分为我所说的宏像素,即10x10的数据点(像素)阵列; 我然后在所选区域上涂上掩膜,只选择符合一定发光条件的点; 到目前为止,这是我想出来的。如有任何帮助,将不胜感激。 多谢
问题内容: 在Java中按值从Map中删除元素的最快方法是什么? 目前,我正在使用: 问题答案: 无需使用双向地图(commons-collections和google collections 都有它们),您就可以迭代地图