def save_cloud(frequencies, output, options={}, color_func=None,canvas_width=0, canvas_height=0):
base_options = copy(WORD_CLOUD_DEFAULTS)
base_options.update(options)
clean_options = { x : base_options[x] for x in base_options if base_options[x] is not None}
wordcloud = WordCloud(**clean_options).generate_from_frequencies(frequencies)
if(color_func):
wordcloud = wordcloud.recolor(color_func=color_func)
image = wordcloud.to_image()
if clean_options.get("height") != clean_options.get("width") and not canvas_width and not canvas_height:
canvas_height = clean_options.get("height")
canvas_width = clean_options.get("width")
if(canvas_width and canvas_height):
final_image = Image.new(image.mode, (canvas_width, canvas_height), clean_options.get("background_color"))
offset = ((final_image.size[0] - image.size[0]) / 2, (final_image.size[1] - image.size[1]) / 2)
final_image.paste(image, offset)
return final_image.save(output)
return image.save(output)
评论列表
文章目录