您的位置:首页 > 娱乐 > 明星 > 嘉兴外贸网站制作_图片生成软件_百度seo报价方法_长沙网站推广公司排名

嘉兴外贸网站制作_图片生成软件_百度seo报价方法_长沙网站推广公司排名

2025/5/8 2:47:15 来源:https://blog.csdn.net/qq_26460841/article/details/146276395  浏览:    关键词:嘉兴外贸网站制作_图片生成软件_百度seo报价方法_长沙网站推广公司排名
嘉兴外贸网站制作_图片生成软件_百度seo报价方法_长沙网站推广公司排名

单页pdf直接打印-onenote-在该页右键,另存为图片即可。

多页pdf,期望保存为一张图片,直接可用的都需要money。可通过python库来完成:

import os
from pdf2image import convert_from_path
from PIL import Image, ImageDrawdef pdf_to_images(pdf_path, img_path):# 转换 PDF 文件为图片images = convert_from_path(pdf_path)# 遍历图片列表并保存paths = []for i, image in enumerate(images):filePath = os.path.join(img_path, f"page_{i + 1}.jpg")if not os.path.exists(img_path):os.mkdir(img_path)image.save(filePath, "JPEG")paths.append(filePath)return pathsdef stitch_images_vertically(image_paths, output_path, line_color="black", line_height=2):"""将多张图片垂直拼接为一张长图,并在每页末尾添加分割线:param image_paths: 图片路径列表:param output_path: 输出图片的路径:param line_color: 分割线的颜色,默认为黑色:param line_height: 分割线的高度,默认为2像素"""# 打开所有图片并获取宽度和高度images = [Image.open(img) for img in image_paths]widths, heights = zip(*(img.size for img in images))# 确定拼接后的图片宽度(取最大宽度)和总高度(包括分割线)total_width = max(widths)total_height = sum(heights) + line_height * (len(images) - 1)# 创建一个新的长图new_image = Image.new('RGB', (total_width, total_height), (255, 255, 255))draw = ImageDraw.Draw(new_image)# 将每张图片粘贴到长图中,并在每页末尾添加分割线y_offset = 0for img in images[:-1]:  # 不在最后一张图片后添加分割线new_image.paste(img, (0, y_offset))y_offset += img.height# 绘制分割线draw.line([(0, y_offset), (total_width, y_offset)], fill=line_color, width=line_height)y_offset += line_height# 粘贴最后一张图片new_image.paste(images[-1], (0, y_offset))# 保存长图new_image.save(output_path)# 示例调用
image_paths = pdf_to_images("a.pdf", "./outputs")
output_path = "stitched_image_with_lines.png"  # 替换为输出图片路径
stitch_images_vertically(image_paths, output_path)

若保存的图片过大,可压缩下。比如:

def compress_image_to_target_size(input_image_path, output_image_path, target_size, step=5):"""将图片压缩到指定大小:param input_image_path: 输入图片路径:param output_image_path: 输出图片路径:param target_size: 目标大小(单位:字节):param step: 质量调整步长"""quality = 95  # 初始质量while True:with Image.open(input_image_path) as img:# 保存图片并调整质量img.save(output_image_path, quality=quality)# 检查文件大小file_size = os.path.getsize(output_image_path)if file_size <= target_size or quality <= 0:break# 调整质量quality -= stepprint(f"图片已压缩到 {file_size / (1024 * 1024):.2f} MB")# 示例调用
compress_image_to_target_size("stitched_image_with_lines.png", "output.jpg", 2 * 1024 * 1024)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com