标签: pillow

使用 Pillow 在 Python 中将数组转换为图像(tif)

我正在尝试将 anarray转换为图像(tif)进行压缩(它将在另一端撤消)。然而,我在第一个障碍上摔倒了......

我有以下几点:

pillow_image = Image.fromarray(image_data)
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

  File "/Users/workspace/test-app/env/lib/python2.7/site-packages/PIL/Image.py",
Run Code Online (Sandbox Code Playgroud)

第 2155 行,在 fromarray arr = obj 中。array_interface AttributeError: 'tuple' 对象没有属性 ' array_interface '

我在这里做错了什么?

python arrays python-imaging-library pillow

2
推荐指数
1
解决办法
5188
查看次数

Python 2 与 Python 3 导入

我有一个用 Python 编写的脚本。作者决定使用仅在 Python 3 中可用的新功能,因此我不得不更新我的版本。

现在我遇到了麻烦,因为脚本在导入语句上崩溃,所以我决定进行一些调试。我得出的结论是,我的 Python 3 无法ImagePIL.

在 Python 2 中:

Python 2.7.10 (default, Aug 22 2015, 20:33:39) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import Image
Run Code Online (Sandbox Code Playgroud)

不会给出错误,但在 Python 3 中:

Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from …
Run Code Online (Sandbox Code Playgroud)

python python-import python-2.7 pillow python-3.5

2
推荐指数
1
解决办法
1305
查看次数

使用 Pillow Python 调整图像大小

现在我正在尝试调整一些 .jpg 文件的大小,我的脚本如下:

from PIL import Image

def main( ): #{

    filename = "amonstercallsmoviestill.jpg"

    image = Image.open(filename)
    size = width, height = image.size

    image.thumbnail((1600,900))

    image.show()

    del image
#}

if (__name__ == "__main__" ): #{

    main()
#}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将 amonstercallsmoviestill.jpg 的大小调整为 (1600,900),但它似乎不起作用。

我已经尝试过 (300,300) 并且它们可以工作,但是每当尝试使用 (1600,900) 进行缩略图时,它似乎都不起作用。

谢谢!

python python-imaging-library pillow

2
推荐指数
1
解决办法
6228
查看次数

如何在 Django 上将 Pillow 处理的图像上传到 S3?

我正在尝试下面我编写的代码,但它抛出了一个错误。我不确定我做错了什么。任何帮助表示赞赏

def upload_img(request):
    maxsize = (1024, 1024)
    im = Image.open(request.FILES['image'])
    im.thumbnail(maxsize)
    img_name = 'test.jpg'
    s3 = boto3.client('s3')
    s3.put_object(
        Bucket=settings.AWS_S3_DEV_IMG_BUCKET,
        Key=img_name,
        Body=im.save(img_name, "JPEG"),
        ContentType='image/jpeg',
    )
Run Code Online (Sandbox Code Playgroud)

错误:

'ParamValidationError: Parameter validation failed:
Invalid type for parameter Body, value: None, type: <type 'NoneType'>, valid types: <type 'str'>, <type 'bytearray'>, file-like object
Run Code Online (Sandbox Code Playgroud)

django amazon-s3 pillow

2
推荐指数
1
解决办法
2532
查看次数

枕头PixelAccess TypeError:函数正好接受1个参数(给定4个)

我正在尝试遍历一些像素并使用进行编辑PixelAccess。由于某些原因,当我尝试设置像素时,Python给了我TypeError: function takes exactly 1 argument (4 given)

pixels[(x, y)] = pix
Run Code Online (Sandbox Code Playgroud)

是确切的代码。

Traceback (most recent call last):
  File "./gen_shuttletiles.py", line 86, in <module>
    main()
  File "./gen_shuttletiles.py", line 76, in main
    pixels[(x, y)] = pix
TypeError: function takes exactly 1 argument (4 given)
Run Code Online (Sandbox Code Playgroud)

pix是图像的RGBA值的4元数字。我试图通过添加一些零来更改元组中项目的数量,并且错误中给出的计数确实增加了。

python image pillow

2
推荐指数
1
解决办法
686
查看次数

像素坐标与绘图坐标

在下面的代码片段中,传递 x 和 y 值会将点放在 (y,x) 坐标中,而绘图是在 (x,y) 中完成的。设置绘图缓冲区以便在同一坐标系中放置像素和绘图的正确方法是什么?

from PIL import Image, ImageDraw

def visual_test(x, y):
    grid = np.zeros((100, 100, 3), dtype=np.uint8)
    grid[:] = [0, 0, 0]
    grid[x, y] = [255, 0, 0]
    img = Image.fromarray(grid, 'RGB')
    draw = ImageDraw.Draw(img)
    draw.line((x, y, x, y-5), fill=(255,255,255), width=1)
    img.show()
Run Code Online (Sandbox Code Playgroud)

python numpy python-imaging-library pillow

2
推荐指数
1
解决办法
7394
查看次数

更快的调整PIL像素值的方法

我正在为色度键(绿色屏幕)编写脚本,并使用Python和PIL(枕头)合成一些视频.我可以键入720p图像,但还有一些留在绿色溢出.可以理解,但我正在编写一个例行程序,以消除泄漏......但是我正在努力解决这个问题需要多长时间.我可以使用numpy技巧获得更好的速度,但我并不熟悉它.有任何想法吗?

这是我的鄙视程序.它需要一个PIL图像和一个敏感数字,但到目前为止我已经离开了它...它一直运作良好.我正以超过4秒的速度进入一个720p的框架,以消除这种溢出.为了比较,色度键例程每帧运行大约2秒.

def despill(img, sensitivity=1):
    """
    Blue limits green.
    """
    start = time.time()
    print '\t[*] Starting despill'
    width, height = img.size
    num_channels = len(img.getbands())
    out = Image.new("RGBA", img.size, color=0)
    for j in range(height):
        for i in range(width):
            #r,g,b,a = data[j,i]
            r,g,b,a = img.getpixel((i,j))
            if g > (b*sensitivity):
                out_g = (b*sensitivity)
            else:
                out_g = g
            # end if

            out.putpixel((i,j), (r,out_g,b,a))
        # end for
    # end for
    out.show()
    print '\t[+] done.'
    print '\t[!] Took: %0.1f seconds' % (time.time()-start)
    exit()
    return out
# …
Run Code Online (Sandbox Code Playgroud)

python numpy chromakey pillow

1
推荐指数
1
解决办法
1142
查看次数

Pillow如何直接从StringIO打开上传的图像文件?

用户通过表单上传图像文件,我不想将原始上传的图像文件保存到磁盘,并通过Pillow从磁盘打开图像来调整图像大小.

我想首先在内存中调整此映像文件的大小,然后将调整大小的映像文件保存到磁盘.所以我导入StringIO作为缓冲区,但它不适用于Pillow.

这是代码:

Python3.4,Flask == 0.10.1,Pillow == 3.4.2

forms.py

class Form():
    img = FileField()
    submit = SubmitField()
Run Code Online (Sandbox Code Playgroud)

views.py

from io import StringIO
from PIL import Image
from .forms import Form

@app.route('/upload_img', methods=['GET', 'POST'])
def upload_img():
    form = Form()
    im = Image.open(StringIO(form.img.data.read())

    pass
Run Code Online (Sandbox Code Playgroud)

TypeError:initial_value必须是str或None,而不是字节

python stringio flask pillow

1
推荐指数
1
解决办法
3360
查看次数

如何让Matplotlib的imshow生成图像而不被绘制

Matplotlib imshow很好地绘制了一个numpy数组。最好用以下代码说明:

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
rows, cols = 200, 200
mat = np.zeros ((rows, cols))
for r in range(rows):
    for c in range(cols):
        mat[r, c] = r * c
# Handle with matplotlib
plt.imshow(mat)
Run Code Online (Sandbox Code Playgroud)

它创建的图: 数字,这是我想要的。我想要的是没有轴的图像,因此通过谷歌搜索,我能够组装此功能:

def create_img (image, w, h):
    fig = plt.figure(figsize=(w, h), frameon=False)
    canvas = FigureCanvas(fig)
    #To make the content fill the whole figure
    ax = plt.Axes(fig, [0., 0., 1., 1.])
    ax.set_axis_off()
    fig.add_axes(ax)
    plt.grid(False)
    ax.imshow(image, aspect='auto', cmap='viridis') …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib pillow

1
推荐指数
1
解决办法
1712
查看次数

如何用枕头中的颜色替换透明

我需要用白色替换png图像的透明层。我试过了

from PIL import Image
image = Image.open('test.png')
new_image = image.convert('RGB', colors=255)
new_image.save('test.jpg', quality=75)
Run Code Online (Sandbox Code Playgroud)

但透明层变成黑色。有人可以帮助我吗?

python image python-3.x pillow

1
推荐指数
2
解决办法
1300
查看次数