【问题标题】:How to create an image with wand in python如何在python中使用魔杖创建图像
【发布时间】:2018-04-08 12:31:57
【问题描述】:

我正在尝试创建一个 4 像素的图像:

1 个红色像素, 1个蓝色像素, 1个绿色像素, 1像素白色

代码:

import wand.image

red = wand.image.Color('rgb(255,0,0)')
green = wand.image.Color('rgb(0,255,0)')
blue = wand.image.Color('rgb(0,0,255)')
white = wand.image.Color('rgb(255,255,255)')

myImage = wand.image.Image(width=2,height=2)

with wand.image.Image (myImage) as img:
    img[0][0] = red
    img[0][1] = blue
    img[1][0] = green
    img[1][1] = white
    img.save(filename='out.png')

但它只会创建一个透明的png。我究竟做错了什么?

【问题讨论】:

    标签: python image wand


    【解决方案1】:

    Wand 的像素迭代器无法将颜色数据“同步”回 ImageMagick 的“真实”像素数据流。

    您可以实现一个导入像素数据流like this question(类似的问题经常被问到)。

    或者使用wand.drawing.Drawing API。

    from wand.image import Image
    from wand.drawing import Drawing
    from wand.color import Color
    
    
    with Drawing() as ctx:
        colors = ["RED", "GREEN", "BLUE", "WHITE"]
        for index, color_name in enumerate(colors):
            ctx.push()                         # Grow context stack
            ctx.fill_color = Color(color_name) # Allocated color
            ctx.point(index % 2, index / 2)    # Draw pixel
            ctx.pop()                          # Reduce context stack
        with Image(width=2, height=2, background=Color("NONE")) as img:
            ctx.draw(img)
            img.sample(100,100)
            img.save(filename="output.png")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      相关资源
      最近更新 更多