为什么 PIL 在我的代码中无法合并 2 个图像?

2023-12-05

我正在尝试使用 Image.paste 函数将 2 张图像合并为一张更大的图像。我首先创建一个可以容纳两个图像的图像,然后粘贴这两个图像:

wrapper = Image.new("I", (width, height+textHeight));

if placement=="bottom":
 wrapper.paste(img1); 
 wrapper.paste(textImage, (0, height, width, textHeight));
else:
 wrapper.paste(textImage);
 wrapper.paste(img1, (0,textHeight));

然后我每次都会收到这个错误:

 File "C:\Python27\lib\site-packages\PIL\Image.py", line 1127, in paste
    self.im.paste(im, box)
ValueError: images do not match

我非常确定图像的尺寸是正确的,并且包装图像可以容纳这两个图像。避免此错误的唯一方法是使 3 个图像(包装器和 2 个组件)大小相同,并从 (0,0) 粘贴。

我无计可施,请帮忙!


有两个可能的问题。

  1. 你确定你的4元组吗(0, height, width, textHeight)是正确的?它应该是(left, upper, right, lower)像素坐标。在这种情况下,粘贴的图像必须与区域的大小相匹配,我认为这就是你的错误所在。或者,您可以给出一个 2 元组,仅给出要粘贴图片的左上角。看:http://effbot.org/imagingbook/image.htm

  2. 您确定高度、宽度、textHeight 是ints并不是floats?

你可以尝试这样的事情:

x, y = img1.size
wrapper.paste(textImage,(0,height,x,y))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 PIL 在我的代码中无法合并 2 个图像? 的相关文章

随机推荐

  • 仅限 C++:一元减 0x80000000

    这个问题据说是针对语言律师的 假设有符号整型和无符号整型都是 32 位宽 如 n3337 pdf 草案 5 3 1 8 中所述 0x80000000u 0x100000000u 0x80000000u 0x80000000u 但我找不到这个
  • 使用 JPA EntityManager 批量插入

    有没有一种方法可以让我们使用 JPA EntityManager 进行批量插入 我知道没有直接的方法可以实现这一点 但必须有某种方法来实现这种机制 实际上 对于每个插入操作 它需要 300 毫秒 我想使用批量插入而不是单个插入来减少这个时间
  • 注射器返回未定义的值?

    我试图从我的遗留代码中获取服务并遇到一个奇怪的错误injector 返回未定义 检查这个plnkr 另外 我正在尝试将新的属性值设置回服务 这是否会在不使用监视的情况下反映到范围 非常感谢您 非常感谢任何指点或建议 您试图在 DOM 构建之
  • Spring 3 - 访问 jsp 中的 messages.properties

    我是 spring 3 的新手 并且已经被困在这个问题上一段时间了 您知道如何从 jsp 访问 messages properties 吗 例如 在控制器中我为模型设置了一个值 model setError user not found 消
  • Gnuplot 中某些特定值的不同颜色的颜色条

    我正在使用 Gnuplot 生成直方图 但如果值高于 低于特定值 我需要将其中一些颜色着色为另一种颜色 例如 如果值 10 值 20 则将直方图着色为红色 所以我希望图表是这样的 x y color 1 4 绿色的 2 15 黄色的 3 4
  • Java:FloatBuffer 到 OpenGL - wrap() 与 allocate() 与 BufferUtils.createBuffer()

    数据源 float v 工作示例 FloatBuffer buf BufferUtils createFloatBuffer v length buf put v buf flip or buf rewind 现在可以将缓冲区上传到 ope
  • 这个正则表达式不应该工作吗?

    testString something something task type Checkin patt new RegExp something w match patt exec testString document querySe
  • 使用 PouchDB 作为离线栅格地图缓存

    我一直在探索使用 PouchDB 作为栅格地图图块的离线缓存 具体来说 对于传单 我刚刚完成了一些初步测试 我想我会分享这些测试 我创建了一个 JsFiddle 实际上我现在更喜欢 CodePen 作为展示如何使用 PouchDB 缓存离线
  • 从pdf文件中提取文本

    我需要从 pdf 文件中提取文本 逐字 import java io import com itextpdf text import com itextpdf text pdf import com itextpdf text pdf pa
  • 如何让 .js 和 .js.map 文件滚动成为 .ts 文件下的子文件

    我有一堆 js 和 js map 文件 这些文件没有汇总在相关的 ts 文件下 这使得找到我感兴趣的文件变得更加困难 在使用 Webstorm 之前我尝试过 Eclipse 并TypeEcs 插件关于这个项目 我认为这就是导致我的问题的原因
  • 如何从 Windows 启动 Mongo DB?

    我已经在 Windows 7 64 位 机器上安装了 MongoDB 我也创建了路径 data db 但当我尝试使用命令启动 mongodb 时 C mongodb bin mongod exe 它没有启动 它正在显示admin web c
  • Javascript从具有多个属性的文件输入元素获取文件数量及其文件名?

    我有一个文件输入multiple multiple 属性允许用户一次选择多个文件 我想在上传之前显示选定的文件名及其计数 但是我不确定如何使用 javascript 从文件输入元素获取此信息
  • 用于转换为任何本地时间的 C++ 库(由 linux zoneinfo 字符串定义)

    我正在寻找一个 C 库来将 UTC 时间转换为任何本地时间 反之亦然 不仅是计算机的时区 而且是任何给定的时区 时区由 unix zoneinfo 字符串 例如 Europe Paris Olson 字符串定义 该库应该在 Windows
  • 将 OPENQUERY 与 Oracle 数据库结合使用来查询日期范围

    我们有一个 Oracle 数据库 可以通过 OpenQuery 访问该数据库以获取某些内容 显然 您无法使用 OleDB 驱动程序直接在 OpenQuery 中进行日期比较 因此要解决此问题 您必须将日期转换为 Julien 日期并比较这些
  • NSOperation 内的调度组 - 尽管 maxConcurrentOperationCount = 1,仍然允许多个操作

    我的目标是在 NSOperation 子类中使用调度组来管理异步任务的串行下载队列 我将 maxConcurrentOperationCount 设置为 1 我已经定义了我的队列 var GlobalDownloadQueue Dispat
  • 为什么我从 mov ax, bx+si+1 得到的结果为零?

    mov ax 10 mov bx 4 mov si ax mov ax bx si 1 LEA ax bx si 1 当我将 bx si 和 1 加在一起并移至 ax 时 结果为 0 在下一行 当我使用 LEA 时 它起作用了 我得到了 1
  • 根据登录用户django显示不同的内容

    所以我上周末刚刚学习了Python Django 我想做的是根据登录者的不同提供具有不同内容的 url 路由 所以我的用例是我创建 5 个用户名 密码 然后这 5 个用户可以登录以阅读适合他们的特定内容 路由 而没有其他用户可以使用用户应该
  • 使用 PhotoKit (PHAsset) 导出视频每次都会给出不同的视频文件

    我使用该方法 本问题的结尾 从设备检索视频 它的作用是找到库中的第一个视频 创建导出会话并将视频导出为 MOV 文件 应用程序运行两次后 在方法运行之间停止应用程序 将比较两个结果文件 两个文件是不同的 我期望这两个文件是相同的 因为导出的
  • Eclipse启动时加载SDK时出错

    我已经阅读了上述问题的不同答案 但我有一个具体的问题 当我启动 Eclipse 时 出现错误 gt Error Parsing gt C android sdk r24 2 windows android sdk windows syste
  • 为什么 PIL 在我的代码中无法合并 2 个图像?

    我正在尝试使用 Image paste 函数将 2 张图像合并为一张更大的图像 我首先创建一个可以容纳两个图像的图像 然后粘贴这两个图像 wrapper Image new I width height textHeight if plac