【问题标题】:Image Slicer not working past first slice - Pillow图像切片器无法通过第一个切片 - 枕头
【发布时间】:2021-02-03 19:46:43
【问题描述】:

所以,我正在开发我的第一个非游戏项目,我的目标是创建一个基本的图像切片器。这个想法是我想拍摄一张图像,接收用户输入的切片大小,然后将图像分解成正确数量的切片。我的代码目前正在创建正确数量的切片,第一个切片看起来是正确的,但剩余的切片都是空白图像或完整的 alpha 图像。

这是我的代码:

import sys
from PIL import Image, ImageDraw
 

im = Image.open("48x48.png")

print('Enter your desired tile size in pixels (Example: 16 will be a 16x16 tile):')
tilesize = input()
tilesize = int(tilesize)

rows = im.size[0] / tilesize
cols = im.size[1] / tilesize

ir = 0
ic = 0
while ir != rows:
    while ic != cols:
        box = (0 + ic * tilesize, 0 + ir * tilesize, tilesize + ic * tilesize, tilesize + ir * tilesize)
        region = im.crop(box)
        slice = Image.new('RGBA', (tilesize, tilesize), color=255)
        mask=Image.new('L', slice.size, color=255)
        draw=ImageDraw.Draw(mask)
        draw.rectangle((0,0,tilesize,tilesize), fill=0)
        slice.putalpha(mask)
        slice.paste(region, box)
        outfile = "r" + str(ir+1) + "c" + str(ic+1) + ".png"
        slice.save(outfile)
        ic += 1
    ir +=1
    ic = 0

顺便说一下,我正在为此使用 Pillow 库。谁能帮我弄清楚我做错了什么?谢谢!

【问题讨论】:

    标签: python image split python-imaging-library slice


    【解决方案1】:

    在另一个论坛上得到了一些帮助。我不得不用 slice.paste(region, (0,0)) 替换 slice.paste(region, box)。成功!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2023-01-08
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多