You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PIL调用paste方法报can only concatenate tuple (not "int")错误如何修复

报错原因

TypeError: can only concatenate tuple (not "int") to tuple
该错误是调用PIL.Image.paste()方法时,第二个定位参数box的格式不符合要求导致的:你传入的是嵌套两个坐标元组的列表,而PIL的paste方法仅支持两种box格式:

  • 仅包含左上角坐标的二元组:(x, y),此时会自动按照被粘贴图片的尺寸匹配粘贴区域
  • 包含区域四个边界坐标的四元组:(left, top, right, bottom),此时要求被粘贴图片尺寸和该区域尺寸完全一致
修复方法

因为你的小图预设尺寸和每个粘贴块的尺寸完全匹配,直接传入左上角二元组即可,把循环内的paste代码修改为:

bg.paste(img1, (rectangle_x, rectangle_y), img1)

如果需要明确指定粘贴区域边界,可以修改为四元组格式:

bg.paste(img1, (rectangle_x, rectangle_y, rectangle_x + rectangle_width, rectangle_y + rectangle_height), img1)
完整修复后代码
import random
import uuid
from PIL import Image

run_id = uuid.uuid1()

print(f'Processing run_id: {run_id}')

img1 = Image.open('1.png')
# 可选:如果你的1.png尺寸不是160*160,可以加一行resize保证尺寸匹配
# img1 = img1.resize((160, 160))

bg = Image.new('RGB', (1600, 1600))

rectangle_width = 160
rectangle_height = 160

for i in range(10):
    for j in range(10):
        rectangle_x = i*160
        rectangle_y = j*160
        # 修复后的paste调用
        bg.paste(img1, (rectangle_x, rectangle_y), img1) 

bg.show() 
补充说明

如果你的1.png不带透明通道,可以删掉paste调用的第三个蒙版参数,运行效果不会有差异。

内容的提问来源于stack exchange,提问作者MANISH KUMAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:54:04