• 【教学类-41】翻页连环画4.0(双面2份,正反2种图案翻页)表情包


    Emoticons,expression sheet of dogs,  cartoon, black and white outline, uncolored,matrix,slapped,dizzy,happy,angry,crying,sad,cute, looking forward to,laughing,disappointed and shy,sleepy,eating,dizzy,love,Pixar style, cute --niji5

    表情包、狗狗表情表、卡通、黑白轮廓、未着色、矩阵、拍打、眩晕、快乐、愤怒、哭泣、悲伤、可爱、期待、大笑、失望和害羞、嗜睡、吃东西、头晕、爱、皮克斯风格、可爱——niji5

    狗与跳舞人,第1页

    狗与跳舞人,第2页

    WORD准备

    代码展示

    1. # -*- coding: utf-8 -*-
    2. '''
    3. 连环画书4.0
    4. 目的:
    5. 1、在制作连环画 一页2份,四面都有图片,2正2反,
    6. 2、作者:阿夏
    7. 时间:2023年10月2日)
    8. '''
    9. import os
    10. import os.path
    11. import shutil
    12. from PIL import Image
    13. # num=int(input('生成多少份(28人)\n'))
    14. # Number=4
    15. print('----------第1步:提取正面水平图片路径------------')
    16. # 文件名
    17. pathfront=[]
    18. p1=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片正面"
    19. # 过滤:只保留png结尾的图片
    20. imgs1=os.listdir(p1)
    21. for img1 in imgs1:
    22. if img1.endswith(".png"):
    23. pathfront.append(p1+'\\'+img1)
    24. # print(pathfront)
    25. pathtime1=[]
    26. for w1 in range(int(len(pathfront)/80)):
    27. t1=pathfront[w1*80:w1*80+80]
    28. # for t11 in t1:
    29. pathtime1.append(t1)
    30. print(pathtime1)
    31. print(len(pathtime1))
    32. print('----------第2步:提取反面倒置图片路径------------')
    33. from PIL import Image
    34. import os.path
    35. import glob
    36. import os
    37. from matplotlib import pyplot as plt
    38. l=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时"
    39. folder = os.path.exists(l)
    40. if not folder: # 判断是否存在文件夹如果不存在则创建为文件夹
    41. os.makedirs(l) # makedirs 创建文件时如果路径不存在会创建这个路径
    42. else:
    43. print("文件夹已存在,无需创建")
    44. dir_path= r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面"
    45. files= os.listdir(dir_path)
    46. for file in files:
    47. ff=os.path.splitext(file)[0]
    48. img=Image.open(r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面/"+file)
    49. img = img.transpose(Image.FLIP_TOP_BOTTOM)
    50. # 左右是这样的im.transpose(Image.FLIP_LEFT_RIGHT) 选装360°的垂直旋转
    51. img.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时/"+file)
    52. # 文件名
    53. pathback=[]
    54. p2=r"C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时"
    55. # 过滤:只保留png结尾的图片
    56. imgs2=os.listdir(p2)
    57. for img2 in imgs2:
    58. if img2.endswith(".png"):
    59. pathback.append(p2+'\\'+img2)
    60. # print(pathfront)
    61. # 新建文件夹并倒置
    62. pathtime2=[]
    63. for w2 in range(int(len(pathback)/80)):
    64. t2=pathback[w2*80:w2*80+80]
    65. # for t12 in t2:
    66. pathtime2.append(t2)
    67. print(pathtime2)
    68. print(len(pathtime2))
    69. # 2
    70. # # pathtime=[]
    71. # # for a1 in pathtime1:
    72. # # for b1 in a1:
    73. # # pathtime.append(b1)
    74. # # for a2 in pathtime2:
    75. # # for b2 in a2:
    76. # # pathtime.append(b2)
    77. # # print(pathtime)
    78. # # print(len(pathtime))
    79. # # print('----------第2步:新建一个临时文件夹------------')
    80. # # # 新建一个”装N份word和PDF“的文件夹
    81. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\零时Word')
    82. import docx
    83. from docx import Document
    84. from docx.shared import Pt
    85. from docx.shared import RGBColor
    86. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    87. from docx.oxml.ns import qn
    88. import random
    89. import os,time
    90. import docx
    91. from docx import Document
    92. from docx.shared import Inches,Cm,Pt
    93. from docx.shared import RGBColor
    94. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
    95. from docx.oxml.ns import qn
    96. from docxtpl import DocxTemplate
    97. import pandas as pd
    98. from docx2pdf import convert
    99. from docx.shared import RGBColor
    100. print('-----------第3步 正面图案右侧坐标 正面图案左侧坐标------------')
    101. bg1=[]
    102. for x1 in range(0,5):
    103. for y1 in range(1,8,2):
    104. c1='{}{}'.format('%02d'%x1,'%02d'%y1)
    105. bg1.append(c1)
    106. bg2=[]
    107. for x2 in range(0,5):
    108. for y2 in range(0,8,2):
    109. c2='{}{}'.format('%02d'%x2,'%02d'%y2)
    110. bg2.append(c2)
    111. for nn in range(0,len(pathtime2)):
    112. doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\连环画书.docx')
    113. path1=[]
    114. path2=[]
    115. # for w in range(len(pathtime1)):
    116. for v in [0,2,1,3]:
    117. # 表格1蝴蝶结猫右侧,表格3蝴蝶结猫右侧,表格2黑猫右侧,表格4黑猫右侧,
    118. u1= pathtime1[nn][v*20:v*20+20]
    119. path1.append(u1)
    120. u2= pathtime2[nn][v*20:v*20+20]
    121. path2.append(u2)
    122. # print(path1)
    123. # print(len(path1))
    124. # print(path2)
    125. # print(len(path2))
    126. for z in range(4):
    127. table = doc.tables[z] # 只有一个表格
    128. # pp=[]
    129. # qq=[]
    130. # kk=[]
    131. for t in range(len(bg1)): # 02
    132. pp1=int(bg1[t][0:2])
    133. qq1=int(bg1[t][2:4])
    134. k1=path1[z][t]
    135. # pp.append(pp1)
    136. # qq.append(qq1)
    137. # # kk.append(k1)
    138. pp2=int(bg2[t][0:2])
    139. qq2=int(bg2[t][2:4])
    140. k2=path2[z][t]
    141. # pp.append(pp2)
    142. # qq.append(qq2)
    143. # kk.append(k2)
    144. # pp=str(pp1)+str(pp2)
    145. # qq=str(qq1)+str(qq2)
    146. # kk=k1+k2
    147. # print(pp,qq,kk)
    148. # # print(pp,qq,k2)
    149. run=doc.tables[z].cell(pp1,qq1).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗
    150. run.add_picture('{}'.format(k1),width=Cm(2.4),height=Cm(2.4)) # 1.5的图片最多6个
    151. table.cell(pp1,qq1).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    152. run=doc.tables[z].cell(pp2,qq2).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗
    153. run.add_picture('{}'.format(k2),width=Cm(2.4),height=Cm(2.4)) # 1.5的图片最多6个
    154. table.cell(pp2,qq2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    155. # # 写入彩色图片
    156. # for s in range(len(kk)):
    157. # run=doc.tables[z].cell(int(pp[s]),int(qq[s])).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗
    158. # run.add_picture('{}'.format(kk[s]),width=Cm(2.4),height=Cm(2.4)) # 1.5的图片最多6个
    159. # table.cell(int(pp[s]),int(qq[s])).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中
    160. # 保存docx 和pdf
    161. doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\零时Word\{}.docx'.format('%02d'%nn))
    162. from docx2pdf import convert
    163. # docx 文件另存为PDF文件
    164. inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word/{}.docx".format('%02d'%nn) # 要转换的文件:已存在
    165. outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word/{}.pdf".format('%02d'%nn) # 要生成的文件:不存在
    166. # 先创建 不存在的 文件
    167. f1 = open(outputFile, 'w')
    168. f1.close()
    169. # 再转换往PDF中写入内容
    170. convert(inputFile, outputFile)
    171. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    172. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    173. import os
    174. from PyPDF2 import PdfFileMerger
    175. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word'
    176. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    177. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    178. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    179. pdf_lst.sort()
    180. file_merger = PdfFileMerger()
    181. for pdf in pdf_lst:
    182. print(pdf)
    183. file_merger.append(pdf)
    184. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/(打印合集)连环画4.0测试双面(共{}份).pdf".format(nn+1))
    185. file_merger.close()
    186. # # # print('----------第5步:删除临时文件夹------------')
    187. import shutil
    188. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/连环画书/零时Word') #递归删除文件夹,即:删除非空文件夹
    189. shutil.rmtree(r'C:\Users\jg2yXRZ\OneDrive\桌面\连环画书\图片反面临时') #递归删除文件夹,即:删除非空文件夹

    实际测试:

    第一次预测试

    第一次翻书实验结果:

    5CM一面,有点翻不动,纸张太少了,页面较大

    第二次翻书实验

    图片多一点

    第二次翻书实验结果:

    1.5CM一面,还是翻不动,可能和纸张材料太软有关也可能还是不够多。

    总之:翻页动画效果不明显,幼儿裁剪40张小卡片也不容易。

    放弃……

  • 相关阅读:
    102.网络游戏逆向分析与漏洞攻防-ui界面的设计-反隐身功能的界面设计与实现(有不使用MFC生成,自己手写代码创建复选框与事件的例子)
    【深入浅出imx8企业级开发实战 | 02】Yocto工程repo源码gitee加速配置方法
    【WPF】单例软件实现自重启
    ai智工作室22级第三次训练赛
    使用Node.js构建一个简单的聊天机器人
    MYSQL数据库之备份与恢复
    github国内镜像,实测可以用,最后一个完美复刻
    03.Pandas数据结构
    spring源码解析——IOC-开启 bean 的加载
    小知识(3) 解决谷歌翻译问题(浏览器/IDEA)
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/133196656