当前位置: 首页 > news >正文

做网站分类链接绍兴做网站哪家好

做网站分类链接,绍兴做网站哪家好,网页设计与网站开发教程,快速学做网站前言 该工具是我认识的一位中科大的大佬在本科毕业的时候做的一个小工具#xff0c;去打印店打印全彩的毕业论文的话会比较贵#xff0c;他想到有没有一种方案可以实现有彩色页面的pdf和没有彩色页面的pdf分开打印#xff0c;前者打印彩色#xff0c;后者打印黑白#xf…前言 该工具是我认识的一位中科大的大佬在本科毕业的时候做的一个小工具去打印店打印全彩的毕业论文的话会比较贵他想到有没有一种方案可以实现有彩色页面的pdf和没有彩色页面的pdf分开打印前者打印彩色后者打印黑白这样做的话可以节约很多打印彩色pdf页面的钱然后这位大佬就做了这样一个小工具省了一笔打印费代码和原文链接在文末我这里介绍下其大致的代码逻辑 1. is_color_image 函数 功能: 检查给定图像是否为彩色图像。 逻辑: 将图像转换为 RGB 模式。将图像转换为 NumPy 数组并归一化像素值到 [0,1] 范围。计算每个像素的最大和最小 RGB 值。计算每个像素的饱和度 (saturation)。统计饱和度大于阈值 (saturation_threshold) 的像素占总像素的比例 (color_fraction)。如果 color_fraction 大于设定的阈值 (color_fraction_threshold)则认为图像是彩色的。 def is_color_image(image, saturation_threshold0.35, color_fraction_threshold0.001):image image.convert(RGB)pixels np.array(image) / 255.0max_rgb np.max(pixels, axis2)min_rgb np.min(pixels, axis2)delta max_rgb - min_rgbsaturation delta / (max_rgb 1e-7) # 防止除以零color_pixels saturation saturation_thresholdcolor_fraction np.mean(color_pixels)return color_fraction color_fraction_threshold2. is_color_page 函数 功能: 检查 PDF 页面是否为彩色页面。 逻辑: 将页面渲染为 pixmap 对象。将 pixmap 转换为 PNG 格式的字节数据。使用 PIL 库将字节数据转换为图像对象。调用 is_color_image 函数检查图像是否为彩色图像。 def is_color_page(page):pix page.get_pixmap()img pix.tobytes(png)from PIL import Imagefrom io import BytesIOimage Image.open(BytesIO(img))return is_color_image(image)3. split_pdf 函数 功能: 将输入的 PDF 分割为彩色页面和黑白页面两个 PDF。 逻辑: 打开输入 PDF。创建新的 PDF 对象来保存彩色页面和黑白页面。遍历输入 PDF 的每一页检查页面是否为彩色页面。如果设置了双面打印 (is_double_sized_printing)确保彩色页面的前后页也包括在内。将彩色页面和黑白页面分别插入到新的 PDF 对象中。保存新的彩色和黑白 PDF。关闭所有文档对象。 def split_pdf(input_pdf_path, output_color_pdf_path, output_bw_pdf_path, is_double_sized_printing):doc fitz.open(input_pdf_path)color_doc fitz.open()bw_doc fitz.open()color_pages []bw_pages []for page_num in tqdm(range(len(doc))):page doc.load_page(page_num)if is_color_page(page):color_pages.append(page_num)if is_double_sized_printing:for page_num in color_pages:if page_num % 2 0 and page_num 1 not in color_pages and page_num 1 len(doc):color_pages.append(page_num 1)if page_num % 2 1 and page_num - 1 not in color_pages and page_num - 1 0:color_pages.append(page_num - 1)for page_num in range(len(doc)):if page_num not in color_pages:bw_pages.append(page_num)for page_num in sorted(color_pages):color_doc.insert_pdf(doc, from_pagepage_num, to_pagepage_num)for page_num in sorted(bw_pages):bw_doc.insert_pdf(doc, from_pagepage_num, to_pagepage_num)color_doc.save(output_color_pdf_path)bw_doc.save(output_bw_pdf_path)doc.close()color_doc.close()bw_doc.close()主程序部分 功能: 定义输入、输出文件路径和是否双面打印的参数并调用 split_pdf 函数。 if __name__ __main__:INPUT_PDF_PATH 1.pdfOUTPUT_COLOR_PDF_PATH color_pages.pdfOUTPUT_BW_PDF_PATH bw_pages.pdfIS_DOUBLE_SIZED_PRINTING Truesplit_pdf(INPUT_PDF_PATH, OUTPUT_COLOR_PDF_PATH, OUTPUT_BW_PDF_PATH, IS_DOUBLE_SIZED_PRINTING)完整代码 import pymupdf as fitz import numpy as np from tqdm import tqdmdef is_color_image(image, saturation_threshold0.35, color_fraction_threshold0.001):image image.convert(RGB)pixels np.array(image) / 255.0 # 归一化像素值到[0,1]范围# 将RGB转换为HSVmax_rgb np.max(pixels, axis2)min_rgb np.min(pixels, axis2)delta max_rgb - min_rgb# 饱和度saturation delta / (max_rgb 1e-7) # 防止除以零# 判断饱和度大于阈值的彩色像素color_pixels saturation saturation_thresholdcolor_fraction np.mean(color_pixels)return color_fraction color_fraction_thresholddef is_color_page(page):Check if a page is a color page.# Render page to a pixmappix page.get_pixmap()# Convert pixmap to an imageimg pix.tobytes(png)# Create an image object using PILfrom PIL import Imagefrom io import BytesIOimage Image.open(BytesIO(img))return is_color_image(image)def split_pdf(input_pdf_path, output_color_pdf_path, output_bw_pdf_path, is_double_sized_printing):# Open the input PDFdoc fitz.open(input_pdf_path)# Create new PDFs for color and black white pagescolor_doc fitz.open()bw_doc fitz.open()# Save color and bw pages numbercolor_pages []bw_pages []# Iterate over each page in the input PDFfor page_num in tqdm(range(len(doc))):page doc.load_page(page_num)# Check if the page is a color pageif is_color_page(page):color_pages.append(page_num)# Handle double sized printingif is_double_sized_printing:for page_num in color_pages:if page_num % 2 0 and page_num 1 not in color_pages and page_num 1 len(doc):color_pages.append(page_num 1)if page_num % 2 1 and page_num - 1 not in color_pages and page_num - 1 0:color_pages.append(page_num - 1)# Insert BW Pagesfor page_num in range(len(doc)):if page_num not in color_pages:bw_pages.append(page_num)# Insert PDF pagesfor page_num in sorted(color_pages):color_doc.insert_pdf(doc, from_pagepage_num, to_pagepage_num)for page_num in sorted(bw_pages):bw_doc.insert_pdf(doc, from_pagepage_num, to_pagepage_num)# Save the new PDFscolor_doc.save(output_color_pdf_path)bw_doc.save(output_bw_pdf_path)# Close all documentsdoc.close()color_doc.close()bw_doc.close()if __name__ __main__:INPUT_PDF_PATH 1.pdf # 待转换的PDF路径OUTPUT_COLOR_PDF_PATH color_pages.pdf # 彩色部分PDF输出路径OUTPUT_BW_PDF_PATH bw_pages.pdf # 黑白部分PDF输出路径IS_DOUBLE_SIZED_PRINTING True # 是否双面打印split_pdf(INPUT_PDF_PATH, OUTPUT_COLOR_PDF_PATH, OUTPUT_BW_PDF_PATH, IS_DOUBLE_SIZED_PRINTING) 原文链接http://t.csdnimg.cn/VY0dE  代码链接https://github.com/RicePasteM/Color-BW-Separator-for-PDF.git
http://www.dnsts.com.cn/news/38453.html

相关文章:

  • 可以建网站的平台高端品牌推广方案
  • 免费做ppt网站网站建设经费预算策划书
  • 岳阳网站优化网页版梦幻西游金色什么伙伴比较好
  • 如何自己设计一个网站做网站 工商 非法经营
  • 网站怎么做下拉刷新页面数据网上卖东西怎么才能卖得好
  • 免费制作手机网站湛江宇锋网站建设
  • iis ip访问网站辽宁网站建站优化公司
  • 济南大型网站设计公司长春网站公司哪家好
  • 网站的访问量怎么查成都做网站开发的公司
  • 定南建设银行网站点方林装饰公司电话
  • 自己做网站空间安徽法制建设网站
  • 网站开发设计注册wordpress控制菜单是否显示
  • 怎么做网站赚流量wordpress月份归档要收录吗
  • 怎么用vs做网站巴基斯坦人做网站怎么样
  • 沧州市有建网站的吗福州百度seo
  • app下载网站免费几个小时学wordpress
  • 快速html5网页设计的网站工程公司的会计做账有哪些科目
  • 宿州市建设局网站wordpress过滤html标签了
  • 六安做网站多少钱北京住建网站
  • 网站建设一般需要什么软件佛山本科网站建设
  • 建站公司收费标准没有域名 怎么做网站链接
  • 网站建设相关技术方案深圳网站制作首选灵点网络
  • 京东网站建设的意义网站建设需要
  • 做装饰公司网站6网站四站合一
  • 网站页面自动还原代码怎么才能在网上卖货
  • wordpress中文网站模板长尾关键词排名系统
  • wordpress 4.7.1下载wordpress多站点 seo
  • wordpress 下载模板站湖南做网站 干净磐石网络
  • 怎么把自己的网站放到百度上html可以做网站吗
  • 中跃建设集团有限公司网站中企动力优秀网站