还是上次latex去连接符,我迂回先生成docx,再转pdf,然后发现插入的pdf折线图的线条很细,但是这个图是第三方提供的,他们不知道怎么调整线条粗细,所以只能自己(靠chatGPT)解决。
1.直接用python把线条加粗,下面脚本只能得到灰度图,尝试多次(问chatGPT),也得到了优化后显示颜色的脚本,但是看起来和原图差不多,线条没有变粗,但是有颜色(这里我转进只看线条粗细的牛角尖里)
#!/usr/bin/python
# -*- coding: utf8 -*-
# -*- coding: UTF-8 -*-
# coding=utf-8
from PIL import Image
import cv2
import numpy as np
def increase_line_thickness(input_image_path, output_image_path, thickness=2):
# 打开图像
image = cv2.imread(input_image_path, cv2.IMREAD_GRAYSCALE)
# 反转颜色,得到线条白色、背景黑色的图像
inverted_image = cv2.bitwise_not(image)
# 执行膨胀操作以增加线条厚度
kernel = np.ones((thickness, thickness), np.uint8)
thickened_image = cv2.dilate(inverted_image, kernel, iterations=1)
# 反转颜色回原始状态
result_image = cv2.bitwise_not(thickened_image)
# 保存结果
cv2.imwrite(output_image_path, result_image)
# 输入和输出图像路径
input_image_path = 'in.png'
output_image_path = 'out.png'
# 增加线条粗细
increase_line_thickness(input_image_path, output_image_path)
2.把原图png修改成其他格式,是不是会好一点,选择转tiff格式,其他格式的图有点糊
#!/usr/bin/python
# -*- coding: utf8 -*-
# -*- coding: UTF-8 -*-
# coding=utf-8
from PIL import Image
import sys
input_image_path=sys.argv[1]
output_image_path=sys.argv[2]
def convert_png_to_tiff(input_image_path, output_image_path):
# 打开PNG图像
with Image.open(input_image_path) as png_image:
# 将图像保存为TIFF格式
png_image.save(output_image_path, 'TIFF')
# 转换PNG为TIFF
convert_png_to_tiff(input_image_path, output_image_path)
虽然转的tiff图和原始png图看起来没区别,但是插入docx在转pdf后,显示效果很好,所以我有点好奇,当时chatGPT提供的方法1优化后转换颜色的脚本生成的图,如果插入docx再转pdf是不是也会好点,但是我懒得尝试了