Questions tagged «python-imaging-library»

Python Imaging Library(PIL)为Python语言提供了事实上的图像处理标准基础。PIL的API是轻量级的,但在语义上是一致的。它在整个成像词典中都提供了一系列舒适的Pythonic工具:处理,分析,压缩和编解码器抽象等,所有这些都基于定制且易于扩展的库结构。

4
如何使用PIL保存图像?
我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但我无法使用save函数。整个代码运行良好,但不会保存生成的图像: from PIL import Image import numpy as np i = Image.open("C:/Users/User/Desktop/mesh.bmp") i = i.convert("L") a = np.asarray(i) b = np.abs(np.fft.rfft2(a)) j = Image.fromarray(b) j.save("C:/Users/User/Desktop/mesh_trans",".bmp") 我得到的错误如下: save_handler = SAVE[string.upper(format)] # unknown format KeyError: '.BMP' 如何使用Pythons PIL保存图像?

11
如何在ipython笔记本中显示PIL图像
这是我的代码 from PIL import Image pil_im = Image.open('data/empire.jpg') 我想对其进行一些图像处理,然后在屏幕上显示它。 我在python笔记本中显示PIL图像时遇到问题。 我努力了: print pil_im 而只是 pil_im 但是两者都给我: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=569x800 at 0x10ECA0710>

2
将图像从PIL转换为openCV格式
我正在尝试将图像从转换PIL为OpenCV格式。我正在使用OpenCV 2.4.3。这是到目前为止我一直尝试的。 >>> from PIL import Image >>> import cv2 as cv >>> pimg = Image.open('D:\\traffic.jpg') #PIL Image >>> cimg = cv.cv.CreateImageHeader(pimg.size,cv.IPL_DEPTH_8U,3) #CV Image >>> cv.cv.SetData(cimg,pimg.tostring()) >>> cv.cv.NamedWindow('cimg') >>> cv.cv.ShowImage('cimg',cimg) >>> cv.cv.WaitKey() 但我认为图像未转换为CV格式。窗口向我显示了一个大的棕色图像。将图像从转换PIL为CV格式时,我在哪里出错? 另外,为什么我需要输入cv.cv访问功能?


7
使用PIL将RGBA PNG转换为RGB
我正在使用PIL将使用Django上传的透明PNG图像转换为JPG文件。输出看起来坏了。 源文件 码 Image.open(object.logo.path).save('/tmp/output.jpg', 'JPEG') 要么 Image.open(object.logo.path).convert('RGB').save('/tmp/output.png') 结果 两种方式的结果图像如下所示: 有没有办法解决这个问题?我想要白色背景曾经是透明背景。 解 多亏了出色的答案,我提出了以下函数集合: import Image import numpy as np def alpha_to_color(image, color=(255, 255, 255)): """Set all fully transparent pixels of an RGBA image to the specified color. This is a very simple solution that might leave over some ugly edges, due …

4
使用PIL获取像素的RGB
是否可以使用PIL获得像素的RGB颜色?我正在使用此代码: im = Image.open("image.gif") pix = im.load() print(pix[1,1]) 但是,它仅输出一个数字(例如0或1),而不输出三个数字(例如60,60,60对于R,G,B)。我想我对功能不了解。我想解释一下。 非常感谢。

7
使用PIL在图像上添加文本
我有一个加载图像的应用程序,当用户单击它时,会为此图像显示一个文本区域(使用jquery),用户可以在其中写一些文本。应该在图像上添加。 在对其进行了一些研究之后,我发现PIL(Python Imaging Library)可以帮助我做到这一点。因此,我尝试了几个示例以了解其工作原理,并设法在图像上写了文字。但是我认为Python Shell在Web环境中使用和尝试时会有一些区别。我的意思是textarea上的文本以px为单位很大。使用PIL作为文本区域上的文本时,如何获得相同大小的文本? 文本是多行。如何使用使其在图像中成为多行PIL? 有没有比使用PIL更好的方法?我不确定,如果这是最好的实现。 的HTML: <img src="images/test.jpg"/> 其图像正在编辑 var count = 0; $('textarea').autogrow(); $('img').click(function(){ count = count + 1; if (count > 1){ $(this).after('<textarea />'); $('textarea').focus(); } }); jQuery添加文本区域。文本区域也是position:绝对和固定大小。 我应该将其放置在表单中以便在图像上获取文本区域的坐标吗?我想在用户单击时在图像上写文本并将其保存在图像上。

7
使用numpy在Python中使用TIFF(导入,导出)
我需要一个python方法来打开TIFF图像并将其导入到numpy数组中,以便我可以分析和修改像素数据,然后再次将它们另存为TIFF。(它们基本上是灰度的光强度图,代表每个像素的相应值) 我找不到有关TIFF的PIL方法的任何文档。我试图弄清楚,但仅收到“错误模式”或“不支持的文件类型”错误。 我需要在这里使用什么?




5
如何在Python中使用PIL将图像合成到另一个图像?
我需要拍摄图像并将其放置在新的生成的白色背景上,以便将其转换为可下载的桌面墙纸。因此该过程将进行: 生成具有1440x900尺寸的新全白图像 将现有图像放在顶部居中 另存为单个图像 在PIL中,我看到了该ImageDraw对象,但是没有任何迹象表明它可以将现有的图像数据绘制到另一个图像上。任何人都可以推荐的建议或链接?

6
重新采样表示图像的numpy数组
我正在寻找如何以新的大小重新采样表示图像数据的numpy数组,最好选择插值方法(最近,双线性等)。我知道有 scipy.misc.imresize 通过包装PIL的调整大小功能可以做到这一点。唯一的问题是,由于它使用PIL,因此numpy数组必须符合图像格式,最多只能提供4个“颜色”通道。 我希望能够使用任意数量的“彩色”通道来调整任意图像的大小。我想知道是否有简单的方法可以在scipy / numpy中执行此操作,或者是否需要自己滚动。 对于如何炮制自己,我有两个想法: scipy.misc.imresize分别在每个通道上运行的功能 创建自己的使用 scipy.ndimage.interpolation.affine_transform 对于大数据,第一个可能很慢,而第二个似乎没有提供除样条线之外的任何其他插值方法。

15
Python:未安装_imagingft C模块
我尝试了很多发布在网络上的解决方案,但它们不起作用。 >>> import _imaging >>> _imaging.__file__ 'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd' >>> 因此系统可以找到_imaging,但仍不能使用truetype字体 from PIL import Image, ImageDraw, ImageFilter, ImageFont im = Image.new('RGB', (300,300), 'white') draw = ImageDraw.Draw(im) font = ImageFont.truetype('arial.ttf', 14) draw.text((100,100), 'test text', font = font) 引发此错误: ImportError: The _imagingft C module is not installed File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__ raise …

6
如何使用PIL使所有白色像素透明?
我正在尝试使用Python图像库使所有白色像素透明。(我是一位尝试学习python的C黑客,所以要谦虚)我已经完成了转换工作(至少像素值看起来正确),但是我不知道如何将列表转换为缓冲区以重新创建图片。这是代码 img = Image.open('img.png') imga = img.convert("RGBA") datas = imga.getdata() newData = list() for item in datas: if item[0] == 255 and item[1] == 255 and item[2] == 255: newData.append([255, 255, 255, 0]) else: newData.append(item) imgb = Image.frombuffer("RGBA", imga.size, newData, "raw", "RGBA", 0, 1) imgb.save("img2.png", "PNG")

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.