标签: python-imaging-library

从PIL获取像素值列表

伙计们,我正在寻求一些帮助.我是一个新手程序员,我现在遇到的一个问题是尝试将黑白.jpg图像转换为列表,然后我可以将其调制为音频信号.这是创建python SSTV程序的大型项目的一部分.

我导入了PIL模块,并尝试调用内置函数:list(im.getdata()).当我调用它时,python崩溃了.有没有办法将图像(总是320x240)分解为240行,以使计算更容易?或者我只是调用了错误的功能.

如果有人有任何建议请开火.如果有人有使用python生成调制音频音调的经验,我很乐意接受他们愿意传授的任何"智慧珍珠".提前致谢

python image python-imaging-library

33
推荐指数
3
解决办法
12万
查看次数

如何更新Tkinter Label小部件的图像?

我希望能够在Tkinter标签上换出图像,但我不知道该怎么做,除了更换小部件本身.

目前,我可以显示如下图像:

import Tkinter as tk
import ImageTk

root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

但是,当用户点击时,比如ENTER键,我想更改图像.

import Tkinter as tk
import ImageTk

root = tk.Tk()

img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")

def callback(e):
    # change image

root.bind("<Return>", callback)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这可能吗?

python tkinter python-imaging-library python-2.7

33
推荐指数
2
解决办法
6万
查看次数

python PIL在图像上绘制多行文字

我尝试在图像的底部添加文本,实际上我已经完成了,但是如果我的文本比图像宽度长,则从两侧剪切,以简化我希望文本在多行中,如果它是比图像宽度长.这是我的代码:

FOREGROUND = (255, 255, 255)
WIDTH = 375
HEIGHT = 50
TEXT = 'Chyba najwy?szy czas zada? to pytanie na ?niadanie \n Chyba najwy?szy czas zada? to pytanie na ?niadanie'
font_path = '/Library/Fonts/Arial.ttf'
font = ImageFont.truetype(font_path, 14, encoding='unic')
text = TEXT.decode('utf-8')
(width, height) = font.getsize(text)

x = Image.open('media/converty/image.png')
y = ImageOps.expand(x,border=2,fill='white')
y = ImageOps.expand(y,border=30,fill='black')

w, h = y.size
bg = Image.new('RGBA', (w, 1000), "#000000")

W, H = bg.size
xo, yo = (W-w)/2, (H-h)/2
bg.paste(y, (xo, 0, xo+w, h))
draw …
Run Code Online (Sandbox Code Playgroud)

python text image python-imaging-library

32
推荐指数
4
解决办法
2万
查看次数

使用python转换图像RGB-> Lab

今天使用PIL/Numpy/SciPy进行转换的首选方式是什么?

python numpy scipy color-space python-imaging-library

32
推荐指数
3
解决办法
3万
查看次数

Python/Pillow:如何缩放图像

假设我的图像是2322像素x 4128像素.如何缩放它以使宽度和高度都小于1028px?

我将无法使用Image.resize(https://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.resize)因为这需要我给出新的宽度和高度.我打算做的是(下面的伪代码):

if (image.width or image.height) > 1028:
    if image.width > image.height:
        tn_image = image.scale(make width of image 1028)
        # since the height is less than the width and I am scaling the image
        # and making the width less than 1028px, the height will surely be
        # less than 1028px
    else: #image's height is greater than it's width
        tn_image = image.scale(make height of image 1028)
Run Code Online (Sandbox Code Playgroud)

我猜我需要使用Image.thumbnail,但根据这个例子(http://pillow.readthedocs.org/en/latest/reference/Image.html#create-thumbnails)和这个答案(如何使用PIL调整图像大小并保持其宽高比?),提供宽度和高度以创建缩略图.是否有任何功能可以采用新的宽度或新的高度(不是两者)并缩放整个图像?

python python-imaging-library image-scaling pillow

32
推荐指数
2
解决办法
5万
查看次数

如何关闭Pillow中打开的图像?

我有一个导入Pillow库的python文件.我可以打开图像

Image.open(test.png)
Run Code Online (Sandbox Code Playgroud)

但是如何关闭该图像呢?我没有使用Pillow来编辑图像,只是为了显示图像并允许用户选择保存或删除它.

python python-imaging-library pillow

32
推荐指数
1
解决办法
4万
查看次数

如何用PIL获取图像格式?

使用PIL.Image加载图像文件后,如何确定图像文件是否为PNG/JPG/BMP/GIF?我对这些文件格式了解甚少,PIL可以format从文件头获取元数据吗?或者是否需要"分析"文件中的数据?

如果PIL没有提供这样的API,那么有没有python库呢?

python image-formats python-imaging-library

32
推荐指数
1
解决办法
3万
查看次数

PIL Image.resize()没有调整图片大小

我有一些奇怪的问题PIL没有调整图像大小.

from PIL import Image
img = Image.open('foo.jpg')

width, height = img.size
ratio = floor(height / width)
newheight = ratio * 150

img.resize((150, newheight), Image.ANTIALIAS)

img.save('mugshotv2.jpg', format='JPEG')
Run Code Online (Sandbox Code Playgroud)

此代码运行时没有任何错误,并生成mugshotv2.jpg在正确的文件夹中命名的图像,但它不会调整它的大小.它做了一些事情,因为图片的大小从120 kb下降到20 kb,但尺寸保持不变.

也许你也可以建议用更少的代码将图像裁剪成正方形.我有点想到这样Image.thumbnail做,但它做的是它将我的图像按宽度缩放到150像素,高度为100像素.

python resize python-imaging-library

31
推荐指数
1
解决办法
5万
查看次数

将openCV图像转换为Python中的PIL图像(用于Zbar库)

我正试图在我用OpenCV的相机方法提取的图像上使用Zbar库的QR码检测方法.通常,QR码检测方法可以在我的计算机上使用图像(jpg,png等),但我猜测OpenCV的捕获帧是不同的.
有没有办法将捕获的帧变成PIL图像?

谢谢.

from PIL import Image
import zbar
import cv2.cv as cv

capture = cv.CaptureFromCAM(1)
imgSize = cv.GetSize(cv.QueryFrame(capture))
img = cv.QueryFrame(capture)

#SOMETHING GOES HERE TO TURN FRAME INTO IMAGE
img = img.convert('L')
width, height = img.size

scanner = zbar.ImageScanner()
scanner.parse_config('enable')
zbar_img = zbar.Image(width, height, 'Y800', img.tostring())

# scan the image for barcodes
scanner.scan(zbar_img)

for symbol in zbar_img:
    print symbol.data
Run Code Online (Sandbox Code Playgroud)

python opencv python-imaging-library zbar

31
推荐指数
2
解决办法
4万
查看次数

为什么Python不能从PIL导入图像?

我尝试运行的单行如下:

from PIL import Image
Run Code Online (Sandbox Code Playgroud)

无论看起来多么简单,它都会出错:

Traceback (most recent call last):
  File "C:\...\2014-10-22_12-49.py", line 1, in <module>
    from PIL import Image
  File "C:\pyzo2014a\lib\site-packages\PIL\Image.py", line 29, in <module>
    from PIL import VERSION, PILLOW_VERSION, _plugins
ImportError: cannot import name 'VERSION'
Run Code Online (Sandbox Code Playgroud)

如果这是有帮助的,我安装了枕头https://pypi.python.org/pypi/Pillow/2.6.1(文件Pillow-2.6.1.win-amd64-py3.4.exe运行此之前)(在此之前,已经有索姆PIL安装,这是我卸载).该脚本使用Python 3.4.1版在Pyzo中运行.

出了什么问题,我该怎么导入Image

python python-import importerror python-imaging-library pillow

31
推荐指数
8
解决办法
9万
查看次数