Python大佬帮我看看这个小问题
本帖最后由 zoenbo 于 2021-3-16 21:29 编辑这个代码是PNG转JPG,转了的JPG是灰度的,我不想要灰度的,只想保留原图色彩,最高的质量,我该怎么改呢?
import cv2
import img2pdf
import numpy as np
from PIL import Image
def png2jpg(file_name, binary_threshold=95, quality=95):
img = cv2.imdecode(np.fromfile(f'{file_name}.png', dtype=np.uint8), -1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
retval, dst = cv2.threshold(gray, binary_threshold, 255, cv2.THRESH_BINARY)
binim = cv2.bitwise_not(dst)
Image.fromarray(binim).save(f'{file_name}.jpg', quality=quality)
return f'{file_name}.jpg'
def jpg2pdf(file_name, jpg_name_list):
file_name = f'{file_name}.pdf'
with open(file_name, 'wb') as f:
pdf_bytes = img2pdf.convert(jpg_name_list)
f.write(pdf_bytes)
print(f'Converted to pdf at {file_name}') 你注释掉自己代码的3,4,5行就行,或者使用下面的代码,但文件路径不能包含中文
def png2jpg2(file_name):
img = cv2.imread("%s.png" % file_name)
cv2.imwrite("%s.jpg" % file_name, img)
jiangpeng59 发表于 2020-12-18 11:20
你注释掉自己代码的3,4,5行就行,或者使用下面的代码,但文件路径不能包含中文
...
大佬,注释了第5行的话那个binim在第6行里有用到, Image.fromarray(binim) zoenbo 发表于 2020-12-18 11:23
大佬,注释了第5行的话那个binim在第6行里有用到, Image.fromarray(binim)
把binim改成img,兄dei学python多长时间啦? jiangpeng59 发表于 2020-12-18 11:26
把binim改成img,兄dei学python多长时间啦?
0基础,学了的时间总共加起来不超过2小时{:1_889:} 这种干嘛不直接用PIL mzbqhbc 发表于 2020-12-18 11:50
这种干嘛不直接用PIL
因为不会,哈哈~大佬,在这个原有基础上有还有别的办法可以改吗?因为这个只是一个文件里的代码,有的注释了程序直接报错。 jiangpeng59 发表于 2020-12-18 11:26
把binim改成img,兄dei学python多长时间啦?
大佬,注释了改了之后直接报错。 用PIL模块 MaKa_Maka 发表于 2020-12-18 12:15
用PIL模块
控制面板下载PIL模块pip install pillow
页:
[1]
2