日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pdf与图片互相转换

發(fā)布時(shí)間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pdf与图片互相转换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.pdf轉(zhuǎn)圖片

import os import numpy as np import cv2 from PIL import Image Image.MAX_IMAGE_PIXELS=None import tempfile import time import sys from pdf2image import convert_from_bytes# # 預(yù)處理程序 # sys.path.append("./data_prepare") # from data_prepare.batch_pdf2jpg import pdf2jpg, pdf2pil_imgs # from data_prepare.batch_rectify import batch_rectify2, rectify_single_img_fast # sys.path.append("./tools") # from tools.img_tools import cv_resize_long_edge, pil_resize_long_edgedef cv_resize_long_edge(cv_img, long_edge_length):# resize the cv_image(height, width) = cv_img.shape[:2]max_len = max(width, height)if max_len == long_edge_length:return cv_imgratio = long_edge_length / max_lenimg = cv2.resize(cv_img, None, fx=ratio, fy=ratio, interpolation=cv2.INTER_LINEAR)return imgdef pil_resize_long_edge(pil_img, long_edge_length):# resize the imagewidth, height = pil_img.sizemax_len = max(width, height)if max_len == long_edge_length:return pil_imgratio = max_len / long_edge_lengthimg = pil_img.resize((round(width/ratio), round(height/ratio)), Image.ANTIALIAS)return imgclass PDF:def __init__(self, pdf_bytes, model, dpi=300, n_threads=4, save_img_dir="./tmp_ocr_dir", small_size=1280):st = time.time()with tempfile.TemporaryDirectory() as tmp_out:pil_imgs = convert_from_bytes(pdf_bytes, output_folder=tmp_out, dpi=dpi, fmt="jpg", thread_count=n_threads)print("pdf拆分用時(shí): 共 %d 頁(yè)用時(shí): %.3fs" % (len(pil_imgs), time.time() - st))self.pages = []start = time.time()# print("deal with:", pdf_path, "output:", pdf_rst_dir)if save_img_dir is not None:os.makedirs(save_img_dir, exist_ok=True)for i, pil_img in enumerate(pil_imgs):page = {}cv_img = np.array(pil_img)# pil_img to cv_imgcv_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)# 限制最大尺寸max_size = 5000if max(cv_img.shape[:2]) > max_size:cv_img = cv_resize_long_edge(cv_img, max_size)if model is not None:# 使用方向分類(lèi)模型cv_img_org = rectify_single_img_fast(model, cv_img)else:cv_img_org = cv_imgpage["ocv"] = cv_img_org# origin cv img# page["opil"] = Image.fromarray(cv2.cvtColor(cv_img_org, cv2.COLOR_BGR2RGB)) # origin pil img# page["scv"] = cv_resize_long_edge(cv_img_org, small_size) # small cv image# page["spil"] = pil_resize_long_edge(page["opil"], small_size) # small pil imageself.pages.append(page)if save_img_dir is not None:img_path = os.path.join(save_img_dir, "%d.jpg" % i)page["img_path"] = img_pathcv2.imwrite(img_path, page["ocv"])print("pdf初始化及矯正: 共 %d 頁(yè)用時(shí): %.3fs" % (len(self.pages), time.time() - start))def __getitem__(self, i):return self.pages[i]def __len__(self):return len(self.pages)if __name__ == '__main__':tmp_dir = "./test_img"if not os.path.exists(tmp_dir):os.mkdir(tmp_dir)path = './me_pdf'pdfs_list_path = [os.path.join(path,i) for i in os.listdir(path)]for i, pdf_list_path in enumerate(pdfs_list_path):# pdf_file_path = '../chengdu/bank_test.pdf'pdf_file_path = pdf_list_pathpdf_bin = open(pdf_file_path, 'rb').read()pdf = PDF(pdf_bin, model=None, save_img_dir=None, small_size=2000)pdf_rst = []for i, page in enumerate(pdf):# img = Image.fromarray(page['ocv'][..., ::-1])# img.save(os.path.join(tmp_dir, '{}.jpg'.format(i)), dpi=(300.0, 300.0), quality=100)img = page['ocv']name = pdf_list_path.split('/')[-1].split('.')[0]cv2.imwrite(os.path.join(tmp_dir, name + '_' + str(i)+'.jpg'), img)

2.圖片轉(zhuǎn)pdf

from reportlab.lib.pagesizes import A4, portrait, landscape from reportlab.pdfgen import canvas import os import cv2 # imgs_path = './需要轉(zhuǎn)換成pdf圖片' # imgs_list_path = [os.path.join(imgs_path,i) for i in os.listdir(imgs_path)] # imgs_list_path = sorted(imgs_list_path) # for i, img_list_path in enumerate(imgs_list_path): # if i<1: # print('img_list_path:', img_list_path)def convert_images_to_pdf(imgs_path, pdf_path):pages = 0(w, h) = portrait(A4)c = canvas.Canvas(pdf_path, pagesize = portrait(A4))# l = os.listdir(img_path)# l.sort(key= lambda x:int(x[:-4]))imgs_list_path = [os.path.join(imgs_path, i) for i in os.listdir(imgs_path)]imgs_list_path = sorted(imgs_list_path)for img_list_path in imgs_list_path:# f = img_path + os.sep + str(img_list_path)c.drawImage(img_list_path, 0, 0, w, h)c.showPage()pages = pages + 1c.save()if __name__ == '__main__':# imgs_path = './需要轉(zhuǎn)換成pdf圖片'# path = './測(cè)試數(shù)據(jù)集_給梧州'# path = './紅頭文件/樣本文件_jpg'path = './紅頭文件/身份證pdf'dirs_list_path = [os.path.join(path, i) for i in os.listdir(path)]for i, dir_list_path in enumerate(dirs_list_path):# imgs_path ='./需要轉(zhuǎn)換成pdf圖片3'# pdf_path = './good.pdf'pdf_path = str(i+1)+'.pdf'convert_images_to_pdf(dir_list_path, pdf_path)

?

總結(jié)

以上是生活随笔為你收集整理的pdf与图片互相转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av中文字幕网址 | 久久精品国产亚洲AV成人婷婷 | 成年人激情视频 | 国产精品美女www爽爽爽视频 | 成人福利一区二区 | 午夜影视免费 | 欧美另类视频在线 | 国产经典毛片 | 婷婷综合在线视频 | 北条麻妃久久精品 | 亚洲国产欧美一区二区三区深喉 | 天堂婷婷| 色婷婷视频在线 | 成人免费va视频 | 久草精品在线观看 | 日本欧美在线观看 | 日韩高清在线播放 | 欧美嫩草 | 波多野结衣中文字幕一区二区 | 青草视频在线观看免费 | 国产在成人精品线拍偷自揄拍 | 91成品视频 | 97超级碰碰人妻中文字幕 | 日韩欧美在线观看一区 | 美女黄视频大全 | 深夜小视频在线观看 | 免费av网站在线播放 | 国产乱淫av片免费看 | 正在播放adn156松下纱荣子 | 国产在线看一区 | 五月婷婷综 | 亚洲中文字幕一区二区 | 一区不卡av | 深夜老司机福利 | 精精国产 | 亚洲精品电影 | 99re这里只有精品6 | 精品国产一区二区三区久久久 | 夜夜嗨av一区二区三区 | 一级黄片毛片 | 正在播放经典国语对白 | 国产精品一二三四五 | 小柔好湿好紧太爽了国产网址 | 五月婷在线 | 欧美一级色图 | 开心激情av | 欧美福利网址 | 看一级黄色片 | 亚洲成人黄色影院 | 午夜时刻免费入口 | 国产精品偷伦视频免费看 | www.96av| 精品日韩在线观看 | 91亚洲精品国偷拍自产在线观看 | 久久在线电影 | 97影院在线午夜 | 日韩网红少妇无码视频香港 | av地址在线观看 | 久久精品99久久 | 天天插天天干 | 中国极品少妇videossexhd 就要干就要操 | 国产私人影院 | 无码毛片aaa在线 | 毛片其地 | 欧美黄色大片网站 | h片在线| 两性av | 成人综合婷婷国产精品久久 | 亚洲AV无码精品色 | 偷拍视频一区 | 一及黄色大片 | 青草草在线观看 | 去毛片 | 国产精品黄色大片 | 国产精久久 | 亚洲国产小视频 | 亚洲一区 | 精品伦精品一区二区三区视频密桃 | 欧美一区二区三区免 | 九色91popny蝌蚪新疆 | 免费在线播放 | 久久精品国产亚洲av无码娇色 | 黄色三级免费 | www.久久爱 | 午夜激情网址 | 国产成人久久精品麻豆二区 | 亚洲涩色| 男女裸体无遮挡做爰 | 超碰1997| 蜜臀久久久久久999 大陆熟妇丰满多毛xxxⅹ | 日韩av免费在线看 | 成人免费视频国产免费网站 | 色婷婷国产 | 亚洲天天看| 一区视频在线播放 | 日韩一级片网址 | 国产三级观看 | 国产精品久久国产精品99 | 久久精品国产亚洲av蜜臀色欲 |