kivy:可以使用缓冲区作为图像源吗?

2024-04-11

我有如下代码,它可以从一些现有图像中生成新图像。

from PIL import Image as pyImage

def create_compound_image(back_image_path, fore_image_path, fore_x_position):

    back_image_size = get_image_size(back_image_path)
    fore_image_size = get_image_size(fore_image_path)

    new_image_width = (fore_image_size[0] / 2) + back_image_size[0]
    new_image_height = fore_image_size[1] + back_image_size[1]

    new_image = create_new_image_canvas(new_image_width, new_image_height)

    back_image = pyImage.open(back_image_path)
    fore_image = pyImage.open(fore_image_path)

    new_image.paste(back_image, (0, 0), mask = None) 
    new_image.paste(fore_image, (fore_x_position, back_image_size[1]), mask = None)

    return new_image

后来在代码中,我得到了这样的东西:

from kivy.uix.image import Image
img = Image(source = create_compound_image(...))

如果我执行上述操作,我会收到以下消息Image.source only accepts string/unicode.

如果我创建一个StringIO.StringIO()对象从新图像,并尝试使用它作为源,错误消息与上面相同。如果我使用 StringIO 对象的 getvalue() 方法的输出作为源,则消息是source must be encoded string without NULL bytes, not str.

使用输出的正确方法是什么create_compound_image()创建 kivy Image 对象时作为源函数?


看来你只想将两个图像组合成一个,实际上你可以使用创建一个纹理纹理创建 http://kivy.org/docs/api-kivy.graphics.texture.html#kivy.graphics.texture.Texture.create并将数据 blit 到特定的 pos 使用纹理.blit_buffer http://kivy.org/docs/api-kivy.graphics.texture.html#kivy.graphics.texture.Texture.blit_buffer .

from kivy.core.image import Image
from kivy.graphics import Texture

bkimg = Image(bk_img_path)
frimg = Image(fr_img_path)

new_size = ((frimg.texture.size[0]/2) + bkimg.texture.size[0],
            frimg.texture.size[1] + bkimg.texture.size[1])

tex = Texture.create(size=new_size)
tex.blit_buffer(pbuffer=bkimg.texture.pixels, pos=(0, 0), size=bkimg.texture.size)
tex.blit_buffer(pbuffer=frimg.texture.pixels, pos=(fore_x_position, bkimg.texture.size[1]), size=frimg.texture.size)

现在您可以直接在任何地方使用此纹理,例如:

from kivy.uix.image import Image
image = Image()
image.texture = tex
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kivy:可以使用缓冲区作为图像源吗? 的相关文章

  • Magento 以编程方式删除产品图像

    这肯定是一个非常简单的编程任务 我绝对无法在网上找到任何有关它的信息 基本上 我正在尝试删除产品图像 我想删除产品媒体库中的所有图像 我可以在不为如此简单的任务编写一百万行代码的情况下完成此操作吗 请注意 我已经尝试过 attributes
  • WPF - 如何使用模板创建图像按钮

    我正在尝试创建一个包含 3 个图像的按钮 一个普通图像 一个按下图像和一个禁用图像 我将使用它们来创建向上 向下箭头按钮 我相信正确的方法是从Button并使用Template并设置触发器来更改图像 我有 3 个依赖属性 每个图像一个 图像
  • python kivy在矩形内添加文本

    如何在矩形内添加文本 我使用下面的代码并在画布内添加了一个标签 希望它能显示在矩形内 import kivy from kivy app import App from kivy uix anchorlayout import Anchor
  • HTML 中包含的带有“img”标签的 SVG 是否可以链接到带有“image”标签的外部图像?

    我在服务器上的同一位置有以下文件 image svg 和文件 bitmap png
  • Direct2D:将 ID2D1Image 转换为 ID2D1Bitmap

    我正在开发一个需要修改屏幕上已有内容的程序 所以我只有一个ID2D1Bitmap我使用创建的pRenderTarget gt CopyFromRenderTarget 我想做的是将效果应用于该位图 效果仅返回ID2D1Image 但我需要有
  • Java applet - 以 png 格式保存图像

    我正在创建一个用于制作头像的简单小程序 您可以选择脸部 头发 眼睛等 然后将其作为 png 文件保存到光盘上 简单版本 为了简单起见 没有界面 如下所示 import java awt import java applet import j
  • Android 中的离屏绘图

    android 中是否可以像 Objective C 中的 imageContext 那样进行离屏绘图 如果有的话 请告诉我链接或某种提示 多谢 我相信您正在寻找Canvas http developer android com refer
  • 如何获取javafx imageView中显示图像的宽度/高度?

    我需要获取 imegView 中显示图像的宽度 高度 并将其与 imageView getImage getWidth getHeight 中的原始图像大小进行比较 并在用户从应用程序 GUI 中调整其大小时监听更改 I get this
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • 在 NoSQL 存储中存储图像

    我们的应用程序将通过 HTTP 提供大量缩略图大小的小图像 大小约为 6 12KB 我被要求调查使用 NoSQL 数据存储是否是一个可行的数据存储解决方案 理想情况下 我们希望我们的数据存储是容错且分布式的 在 NoSQL 存储中存储 bl
  • JQuery 可拖动图像并保存位置

    好吧 这变得很尴尬 已经搜索并尝试了大约 5 个小时 但我只是在兜圈子 场景很简单 它是用户个人资料的标题图像 可以将其拖动到某个位置 然后将图像的顶部位置保存到数据库中 感谢 Beetroot Beetroot 的 遏制 父级 我开始关注
  • python中旋转图像:推断背景颜色

    我使用以下 python 代码旋转图像 from PIL import Image img Image open banana jpg rotated img rotate 10 rotated save banana rotated jp
  • 将pillow Image对象转换为JpegImageFile对象

    我裁剪了一张 jpeg 图像 但裁剪后的图像类型是
  • 如何将 BufferedImage 转换/转换为图像?

    我想转换一个BufferedImage to an java awt Image 我的源图像是 tif 所以我使用 JAI 将其读取为PlanarImage PlanarImage 源 JAI create 文件加载 IMG DIR tag
  • 如何使用 OpenCV 检测图像帧中的对象?

    我正在使用 Raspberry Pi 开发一个漫游器 它将清扫房间并捡起掉落在地上的物体 为了检测物体 我使用了在流动站操作开始时拍摄的参考图像 以及每 10 秒单击一次的图像 新图像 为了确定图像帧是否发生变化 我在参考图像和新图像之间进
  • Python - 查找图像中对象的中心

    我有一个具有白色背景和非白色对象的图像文件 我想使用 python Pillow 找到对象的中心 我在 C 中发现了类似的问题 但没有可接受的答案 如何找到物体的中心 https stackoverflow com questions 12
  • 在 Kivy 应用程序中获取文本输入值

    Python Kivy 新手尝试构建一个测试应用程序 其中包含输入框 确定按钮和单击确定按钮时应更改文本的标签 但我得到了 NameError 全局名称 txt1 未定义 我究竟做错了什么 import Kivy import kivy i
  • 通过内联样式动态设置背景 Div 图像时不显示 | Next.Js

    我试图通过使用地图和外部 js 文件将图像存储为对象来从组件渲染图像 然后通过它们设置循环 将其设置为创建的每个 div 的不同背景图像 如果有意义的话 我将提供代码来更清楚地说明我想要完成的任务 在地图过程中 我试图定位对象方法 但我相信
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome

随机推荐