也可以直接在三维场景里直接拖拽指派。
建议优库去 搜索 blender 中文 视频 教程,看一眼就明白了。
>> fill = (200, 10, 10, 05)
对于RGBA模式的,填充半透明色,alpha位置取值是0-255,你希望50%,应该是用128,不是0。5
>> 我这里画了一个比如三角形,准备再画一个三角形,也是半透明的,那么这两个颜色是可以混合起来的吧?
直接在同一个Image上绘图是不行的。后面画的会直接覆盖前面的,颜色不会自动融合。如果想要融合的效果,需要用Imageblend(im1, im2, 05)或者Imagecomposite(im1, im2, mask)其中mask需要带alpha参数,可以设置为128
#!/usr/bin/env python2# coding=utf-8
"""
draw shapes and fill shap with transparent color and overlap them
"""
from PIL import Image, ImageDraw
def main():
im = Imagenew("RGBA", (800, 800))
draw = ImageDrawDraw(im)
drawrectangle((0, 0, 200, 200), fill=(255, 0, 0, 128))
drawrectangle((400, 400, 600, 600), fill=(255, 0, 0))
im2 = Imagenew("RGBA", (800, 800))
draw2 = ImageDrawDraw(im2)
draw2rectangle((100, 100, 300, 300), fill=(0, 255, 0, 128))
draw2rectangle((500, 500, 700, 700), fill=(0, 255, 0))
# merge two images using blend
blend = Imageblend(im, im2, 05)
# drawf = ImageDrawDraw(blend)
# drawfrectangle((500, 100, 600, 200), fill=(255, 0, 0))
# drawfrectangle((600, 200, 700, 300), fill=(0, 255, 0))
blendsave("/home/sylecn/d/blendpng")
# merge two images using composite
ones = Imagenew("RGBA", (800, 800))
_draw = ImageDrawDraw(ones)
_drawrectangle((0, 0, 800, 800), fill=(255, 255, 255, 128))
final = Imagecomposite(im, im2, ones)
finalsave("/home/sylecn/d/compositepng")
if __name__ == '__main__':
main()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)