python不改变文件长度和高度,改变文件大小

本文介绍了一个使用Python的PIL库批量处理图片,将其缩放到指定大小的方法。通过遍历指定目录下的所有图片文件,利用Image模块打开图片并调整其大小,最后保存为新的文件。
# coding=utf-8
from PIL import Image
import glob
import os

def img_thumbnail(src_file):
    for infile in glob.glob(src_file):
        filename,extend_name = os.path.splitext(infile)
        im = Image.open(infile)
        #h获取图片尺寸,例如(3264,2448)
        size = im.size
        im.thumbnail(size, Image.ANTIALIAS)
        im.save(filename + '-py.jpg', 'jpeg')
img_thumbnail('C:\\Users\\Desktop\\test.jpg')

 

### 如何在Python中生成自定义形状的词云图 要在Python中生成具有自定义形状的词云图,可以利用`wordcloud`库中的`mask`参数。此参数允许用户指定一个图像作为模板,从而控制词云的形状[^3]。 以下是实现这一功能的具体方式: #### 使用 `mask` 参数设置词云形状 为了使词云呈现特定形状,需准备一张对应形状的黑白图片(通常为PNG格式)。黑色区域表示词云文字会填充的地方,而白色区域则用于展示词云内容[^4]。 ```python from wordcloud import WordCloud import numpy as np from PIL import Image import matplotlib.pyplot as plt # 定义文本数据 text = "大家好我是空空star我爱发动态我喜欢使用搜索引擎模式进行分词" # 利用 jieba 进行中文分词处理 import jieba cut_text = " ".join(jieba.cut_for_search(text)) # 导入遮罩图片 (假设 heart.png 是心形图案) local = './' mask = np.array(Image.open(local + "heart.png")) # 创建带有 mask 的词云对象 wc = WordCloud( font_path="STHeitiMedium.ttc", # 中文字体路径 background_color='white', # 背景颜色 mask=mask, # 自定义形状掩码 max_words=2000, # 最大显示词语数量 max_font_size=100, # 最大字体大小 width=500, # 图片宽度 height=500 # 图片高度 ) # 生成词云 wc.generate(cut_text) # 展示词云 plt.figure(figsize=(8, 6)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') # 关闭坐标轴 plt.show() # 保存词云图为文件 wc.to_file(local + "custom_shape_wordcloud.png") ``` 以上代码片段展示了如何通过加载一幅心形图片作为`mask`来生成相应形状的词云[^3]。注意,在实际操作过程中可能需要调整输入文本长度以及字体样式以获得最佳视觉效果[^4]。 #### 注意事项 - **字体支持**:对于中文字符,务必提供合适的中文字体文件路径给`font_path`参数;否则可能会遇到乱码或者无法正常渲染的情况。 - **图片质量**:选用高分辨率且对比度明显的二值化图片作为`mask`素材能够提升最终成品的质量。 - **依赖安装**:确保已正确安装所需第三方库 (`wordcloud`, `numpy`, `pillow`) 及其版本兼容性[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值