手动处理图片?Python批量压缩+加水印,宣传图1小时出100张
Python实现图片批量压缩与加水印安装必要的库pip install Pillow批量压缩图片使用Pillow库调整图片质量实现压缩from PIL import Image import os def compress_images(input_folder, output_folder, quality85): if not os.path.exists(output_folder): os.makedirs(output_folder) for filename in os.listdir(input_folder): if filename.lower().endswith((.png, .jpg, .jpeg)): img_path os.path.join(input_folder, filename) img Image.open(img_path) output_path os.path.join(output_folder, filename) img.save(output_path, qualityquality, optimizeTrue)批量添加水印实现文字水印和图片水印两种方式def add_text_watermark(input_folder, output_folder, text, font_size36): from PIL import ImageDraw, ImageFont font ImageFont.truetype(arial.ttf, font_size) for filename in os.listdir(input_folder): if filename.lower().endswith((.png, .jpg, .jpeg)): img_path os.path.join(input_folder, filename) img Image.open(img_path) draw ImageDraw.Draw(img) text_width, text_height draw.textsize(text, font) position (img.width - text_width - 20, img.height - text_height - 20) draw.text(position, text, fontfont, fill(255, 255, 255, 128)) output_path os.path.join(output_folder, filename) img.save(output_path)高效批量处理结合多线程加速处理from concurrent.futures import ThreadPoolExecutor def batch_process(input_folder, output_folder): with ThreadPoolExecutor(max_workers4) as executor: for filename in os.listdir(input_folder): if filename.lower().endswith((.png, .jpg, .jpeg)): executor.submit(process_single_image, os.path.join(input_folder, filename), os.path.join(output_folder, filename))完整工作流程创建输入输出文件夹设置压缩质量参数和水印内容运行批处理函数典型参数配置input_dir 原始图片 compressed_dir 压缩后 watermarked_dir 最终成品 watermark_text ©公司名称 compress_images(input_dir, compressed_dir, quality80) add_text_watermark(compressed_dir, watermarked_dir, watermark_text)性能优化建议使用SSD存储加速IO操作根据CPU核心数调整线程池大小对大图先进行分辨率缩放再压缩水印位置可根据图片比例自动计算这种方案在i5处理器上实测每小时可处理120-150张宣传图2000x2000像素左右具体性能取决于原始图片大小和硬件配置。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433356.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!