CN117573048A - 一种文档水印自动生成方法及终端 - Google Patents
一种文档水印自动生成方法及终端 Download PDFInfo
- Publication number
- CN117573048A CN117573048A CN202311507369.7A CN202311507369A CN117573048A CN 117573048 A CN117573048 A CN 117573048A CN 202311507369 A CN202311507369 A CN 202311507369A CN 117573048 A CN117573048 A CN 117573048A
- Authority
- CN
- China
- Prior art keywords
- pixel
- watermark
- page
- rendering
- printing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000009877 rendering Methods 0.000 claims abstract description 80
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000009499 grossing Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 12
- 230000000694 effects Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1242—Image or content composition onto a page
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
一种水印自动生成方法及终端,获取目标页数据以及水印数据,目标页数据包括页内容、页长度和页宽度;获取打印长度和打印宽度,并根据打印长度和打印宽度创建内存位图;根据页长度以及页宽度将页内容渲染到内存位图中,并将水印数据渲染到内存位图中,得到渲染位图;将渲染位图转换为打印格式并打印;本发明将需要打印的目标页数据以及水印数据渲染到内存位图中,因内存位图的大小是根据打印长度和打印宽度建立的,而对于打印机而言,打印长度和打印宽度通常是确定的,故最终渲染位图的大小也是确定的,不会因为水印数据的增加而造成图片过大,减少了打印过程中的数据处理量,从而提高了打印的效率,加快添加水印的处理速度。
Description
技术领域
本发明涉及水印生成领域,尤其涉及一种水印自动生成方法及终端。
背景技术
随着数字化技术的迅猛发展,目前许多行业和个人普遍都使用电子文档处理资料和保存信息,并且常常通过打印、复印等途径将电子文档中的内容显现在纸张上,以供阅读和传播。但是,对于涉及密性信息(如合同、财务等重要文档)的企业单位,很多重要信息或者机密信息很可能通过这些纸质文档泄漏出去,并被给予恶意第三方,给造成企业损失。
为了规避这种危险行为,员工在打印文档时,会在打印文档中添加水印。一般这种水印会显示员工的工号,打印时间等内容。通过这些水印内容可以很容易地追溯打印文档的来源,但是添加好水印之后再打印会影响文档在电子屏幕上的显示,而在打印阶段添加水印会增加设备端的负担。
发明内容
本发明所要解决的技术问题是:提供一种水印自动生成方法及终端,实现提高打印时添加水印的处理速度。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种水印自动生成方法,包括步骤:
获取目标页数据以及水印数据,所述目标页数据包括页内容、页长度和页宽度;
获取打印长度和打印宽度,并根据所述打印长度和打印宽度创建内存位图;
根据所述页长度以及页宽度将所述页内容渲染到所述内存位图中,并将所述水印数据渲染到所述内存位图中,得到渲染位图;
将所述渲染位图转换为打印格式并打印。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种水印自动生成终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取目标页数据以及水印数据,所述目标页数据包括页内容、页长度和页宽度;
获取打印长度和打印宽度,并根据所述打印长度和打印宽度创建内存位图;
根据所述页长度以及页宽度将所述页内容渲染到所述内存位图中,并将所述水印数据渲染到所述内存位图中,得到渲染位图;
将所述渲染位图转换为打印格式并打印。
本发明的有益效果在于:根据打印机固定的打印长度和打印宽度建立对应大小的内存位图,将需要打印的目标页数据以及水印数据渲染到内存位图中,因内存位图的大小是根据打印长度和打印宽度建立的,而对于打印机而言,打印长度和打印宽度通常是确定的,故最终渲染位图的大小也是确定的,不会因为水印数据的增加而造成图片过大,减少了打印过程中的数据处理量,从而提高了打印的效率,加快添加水印的处理速度。
附图说明
图1为本发明实施例的一种水印自动生成方法的步骤流程图;
图2为本发明实施例的一种水印自动生成方法应用在实际场景的流程图;
图3为本发明实施例的一种水印自动生成终端的结构示意图;
标号说明:
1、一种水印自动生成终端;2、处理器;3、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种水印自动生成方法,包括步骤:
获取目标页数据以及水印数据,所述目标页数据包括页内容、页长度和页宽度;
获取打印长度和打印宽度,并根据所述打印长度和打印宽度创建内存位图;
根据所述页长度以及页宽度将所述页内容渲染到所述内存位图中,并将所述水印数据渲染到所述内存位图中,得到渲染位图;
将所述渲染位图转换为打印格式并打印。
从上述描述可知,本发明的有益效果在于:根据打印机固定的打印长度和打印宽度建立对应大小的内存位图,将需要打印的目标页数据以及水印数据渲染到内存位图中,因内存位图的大小是根据打印长度和打印宽度建立的,而对于打印机而言,打印长度和打印宽度通常是确定的,故最终渲染位图的大小也是确定的,不会因为水印数据的增加而造成图片过大,减少了打印过程中的数据处理量,从而提高了打印的效率,加快添加水印的处理速度。
进一步地,所述水印数据包括旋转角度、位置坐标以及水印内容;
所述将所述水印数据渲染到所述内存位图中之前包括:
将所述水印内容转换为水印位图;
根据所述旋转角度旋转所述水印位图;
所述将所述水印数据渲染到所述内存位图中包括:
根据所述位置坐标将旋转后的所述水印位图渲染到所述内存位图中。
由上述描述可知,将水印数据渲染到内存位图中之前,先将水印内容转换为水印位图,保证在后续的放大/缩小/拉伸中不会丢失水印内容的清晰图,然后根据预设的旋转角度旋转水印,将水印和需要打印的页面中的内容之间形成角度,避免完成渲染之后的水印遮盖住目标页中的页内容,最后根据坐标位置将水印位图渲染到内存位图中,实现与目标页的整合。
进一步地,所述将所述水印数据渲染到所述内存位图中包括:
若在渲染所述水印数据的水印像素时,所述水印像素的目标渲染位置已渲染了页内容的页像素,则将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值;
根据所述目标像素值更新所述目标渲染位置的像素点。
由上述描述可知,在渲染水印数据的水印像素时,需要渲染的目标渲染位置如果已渲染了页内容的页像素,这时直接将水印像素覆盖页像素就可能造成页内容的丢失,若直接采用页像素会造成水印在相应位置的模糊,此时同时考虑水印像素和页像素,将二者通过像素融合算法进行融合得到目标像素值,以目标像素值作为目标渲染位置的像素点的像素值,能够在水印像素所表达的信息和页像素所表达的信息之间找到一个平衡点,提升最终的打印效果。
进一步地,所述将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值包括:
若所述页像素为空白像素,则直接将所述水印像素作为融合后的目标像素值;
否则,获取所述水印数据中存储的透明度,根据所述透明度为所述水印像素的像素值以及页像素的像素值加权;
融合加权后的水印像素的像素值以及页像素的像素值,得到目标像素值。
由上述描述可知,若页像素为空白,则说明该目标渲染位置的页像素中并未蕴含信息,即此时无需考虑页像素,直接使用水印像素替代即可;若页像素不为空白,则说明该目标渲染位置需要同时考虑页像素和水印像素中的信息,此时将页像素和水印像素融合,综合考虑二者的信息表达,实现提升最终显示的品质。
进一步地,所述根据所述透明度为所述水印像素的像素值以及页像素的像素值加权包括:
w1=transparent;
w2=1-transparent;
其中,w1表示所述水印像素的像素值的权重;w2表示所述页像素的像素值的权重;transparent表示所述透明度;
所述融合加权后的水印像素的像素值以及页像素的像素值,得到目标像素值包括:
p=p1×w1+p2×w2;
其中,p表示目标像素值,p1表示在所述目标渲染位置的所述水印像素的像素值;p2表示在所述目标渲染位置的所述页像素的像素值。
由上述描述可知,在渲染时,水印如果过重会影响文档本身的阅读体验,故通常会给水印设置一个透明度,这就需要在渲染的时候融合水印和文档本身的像素,本发明中以水印像素的透明度和页像素的透明度组成一份完整的权重,按照透明度给水印像素和页像素进行加权得到最终的像素值,则若设置的透明度高,在融合过程中的权重就低,从而减小对文档中内容的影响的同时能够完整显示出水印,避免因为水印影响文档内容的查看。
进一步地,所述根据所述目标像素值更新所述目标渲染位置的像素点之后还包括:
获取所述像素点的邻居像素点;
计算所述目标像素值与每一所述邻居像素点的邻居像素值之间的差值;
若所述差值超过预设差值的邻居像素点的数量超过预设数量,则对所述像素点进行平滑计算。
由上述描述可知,在更新目标渲染位置的像素点之后,还获取其邻居像素点,若差值过大,并且差值过大的数目超过预设数量,则说明在渲染过程中出现误差,图像上存在颗粒状的噪点,对像素点进行平滑计算,能够避免渲染完毕之后图像上出现噪点的情况。
进一步地,所述对所述像素点进行平滑计算包括:
将所述像素点以及邻居像素点按照像素值大小顺序排序,得到像素值队列;
获取所述像素值队列的中位数,根据所述中位数更新所述目标渲染位置的像素点。
由上述描述可知,根据像素值队列的中位数进行平滑,能够确定是邻居像素点中出现过的像素值,避免重新计算一个新的像素值之后反而出现突兀噪点的情况。
进一步地,所述若所述差值超过预设差值的邻居像素点的数量超过预设数量,则对所述像素点进行平滑计算之前包括:
获取所述像素点的邻居像素点;
将所述邻居像素点的像素值两两相减后取绝对值,得到多个相对差;
获取所述相对差中的最大差值,以所述最大差值的预设倍数作为所述预设差值。
由上述描述可知,预设差值根据不同像素对所对应的不同邻居像素点进行动态调整,因图像上不同位置的像素值差异可能非常大,如果统一设定预设差值,不能够适配图像中的所有情况,而根据像素点周围邻居像素点的实际情况进行预设差值的确定,更加适配图像局部像素的调整,并且也能够将噪点与正常图像中的像素值过渡区分开,例如一个字的边缘不会被识别为噪点,进一步提高最终图像的质量。
进一步地,所述将所述渲染位图转换为打印格式并打印包括:
将所述渲染位图转换为矢量图形文件并打印。
由上述描述可知,通过转换为矢量图形文件格式进行打印,打印的效果不会受到分辨率变化的影响,能够保持高清的打印结果。
请参照图3,一种水印自动生成终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种水印自动生成方法中的各个步骤。
在现有的打印过程中,若要在打印时添加水印,通常会读取打印文档中的水印内容,将每一块水印作为一个对象通过图像设备接口(例如GDI)转换为矢量图形文件里的一个对象,矢量图形文件(例如EMF)保存着每个水印对象的各种属性;接着打印假脱机队列(在打印系统中,用于存放用户打印请求的队列)在打印系统中,用户提交的打印请求被存放在打印请求队列中,由系统打印进程(负责读取打印文档内容,把文档渲染到打印机设备上的进程)依次对队列中的文件进行打印;调用打印驱动接口将矢量图形文件解析为Raw文件,再通过端口服务将Raw文件发送给打印机设备进行打印。在把打印文档转化为矢量图形文件的过程中,每一个水印作为一个对象转化为矢量图形文件里的图形对象,矢量图形文件里图形对象包含对象的各种属性,包括颜色、线条样式、填充模式、字体和文本内容、位置、大小和旋转角度等信息,当水印个数比较多时,文件里存储每个水印图形对象的属性信息,造成数据文件很庞大。数据量大导致后续步骤中转换成Raw文件速度慢,且Raw文件数据量也很大,发送给打印机花费的时间长,总体打印速度慢。本发明上述一种水印自动生成方法及终端能够适用于需要为打印文件添加水印的场景,以下通过具体实施方式进行说明。
请参照图1,本发明的实施例一为:
一种水印自动生成方法,包括步骤:
S1、获取目标页数据以及水印数据,所述目标页数据包括页内容、页长度和页宽度;
在一种可选的实施方式中,水印数据包括旋转角度、位置坐标以及水印内容;可以预设旋转角度,后台管理员可以预先配置水印的参数,包括水印内容、水印字体、透明度、水印文字旋转的角度等;
在一种可选的实施方式中,调用FPDF_LoadPage()传入文档对象,获取文档打印页数据(pageData),并通过FPDF_GetPageWidth()和FPDF_GetPageHeight()分别获取该页文档的宽(页宽度pageWidth)和高(页长度pageHeight);
S2、获取打印长度和打印宽度,并根据所述打印长度和打印宽度创建内存位图;
在一种可选的实施方式中,调用GetDeviceCaps()获取打印机设备的打印宽度(deviceWidth)和打印长度(deviceHeight);通过打印机设备的宽高创建一个和打印机设备等宽高的内存位图(Bitmap),并将内存位图背景色设置成透明颜色,防止其他颜色对文档渲染的结果造成影响;
S3、根据所述页长度以及页宽度将所述页内容渲染到所述内存位图中,并将所述水印数据渲染到所述内存位图中,得到渲染位图;
在一种可选的实施方式中,通过调用FPDF_RenderPageBitmap()把打印页数据渲染到内存位图,该方法需要传入内存位图(Bitmap)、打印页数据(pageData)、打印宽度(deviceWidth)和打印长度(deviceHeight),通过该方法渲染后,打印页的数据包括所有水印和页面内容会转换成位图数据,同时打印页内容根据打印页宽高和位图宽高的比例缩放到位图大小,该位图的大小固定为打印宽度(deviceWidth)和打印长度(deviceHeight)乘积大小的像素;
其中,将水印数据渲染到内存位图中包括:
S31、将所述水印内容转换为水印位图;
S32、根据所述旋转角度旋转所述水印位图:水印bmp位图进行像素旋转变换,变换只变换像素位置,像素值不变,如旋转前某个像素点坐标为(x1,y1),旋转后该像素点的坐标为(x2,y2),旋转角度为α,则:x2=x1×cosα-y1×sinα,y2=x1×cosα+y1×sinα;此处旋转公式为距离,可以使用其他能够实现旋转变换的公式,在此不作限制;
S33、根据所述位置坐标将旋转后的所述水印位图渲染到所述内存位图中,包括:
S331、若在渲染所述水印数据的水印像素(转换为水印位图后即为水印位图中的水印像素)时,所述水印像素的目标渲染位置已渲染了页内容的页像素,则将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值;
在一种可选的实施方式中,若水印像素为空白点,则直接使用页像素;因水印位图在S32经过旋转,旋转后的水印位图会出现一些空白的点,即变换后的图像有一些点并没有对应的变换前图像的像素点;具体地,旋转角度是90度的倍数,旋转前后的像素点是一一对应的,但如果选择类似30度,这种角度的旋转,旋转前后的像素点不会一一对应,根据旋转公式旋转后的坐标点值不是整数,但在打印过程中坐标必须取整,计算结果的坐标按四舍五入取整,最终旋转后有些点没有对应旋转前的点;
在一种可选的实施方式中,将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值包括:
(1)若所述页像素为空白像素,则直接将所述水印像素作为融合后的目标像素值;所述空白像素表示页像素为背景色(例如文档的背景色通常为白色),或页像素未有对应的像素值;
(2)否则,获取所述水印数据中存储的透明度,根据所述透明度为所述水印像素的像素值以及页像素的像素值加权:
w1=transparent;
w2=1-transparent;
其中,w1表示所述水印像素的像素值的权重;w2表示所述页像素的像素值的权重;transparent表示所述透明度;
(3)融合加权后的水印像素的像素值以及页像素的像素值,得到目标像素值:
p=p1×w1+p2×w2;
其中,p表示目标像素值,p1表示在所述目标渲染位置的所述水印像素的像素值;p2表示在所述目标渲染位置的所述页像素的像素值;
S332、根据所述目标像素值更新所述目标渲染位置的像素点;
S333、对所述目标渲染位置的像素点进行去噪:
(1)获取所述像素点的邻居像素点;
(2)计算所述目标像素值与每一所述邻居像素点的邻居像素值之间的差值;
(3)若所述差值超过预设差值的邻居像素点的数量超过预设数量,则执行(4);
在一种可选的实施方式中,计算预设差值的方法为:获取所述像素点的邻居像素点;将所述邻居像素点的像素值两两相减后取绝对值,得到多个相对差;获取所述相对差中的最大差值,以所述最大差值的预设倍数作为所述预设差值;
例如,设置与所有邻居像素点之间的差值均超过预设差值才执行(4);
在一种可选的实施方式中,可获取像素点相邻的上下左右四个邻居像素点,或围绕像素点的八个邻居像素点;以四个邻居像素点(p1、p2、p3、p4)为例,计算多个相对差a1=|p1-p2|、a2=|p1-p3|、a3=|p1-p4|、a4=|p2-p3|、a5=|p2-p4|、a6=|p3-p4|,若a2最大,且预设倍数为3,则取a2×3作为预设差值,以周边已经确定的点对像素点进行纠偏,保证了局部的图像显示效果,且更加贴近真实值;
(4)对所述像素点进行平滑计算:将所述像素点以及邻居像素点按照像素值大小顺序排序,得到像素值队列;获取所述像素值队列的中位数,根据所述中位数更新所述目标渲染位置的像素点;
循环步骤S31至S33,直至所有水印位图渲染完毕;
S4、将所述渲染位图转换为打印格式并打印,完成文档中一个目标页的打印后返回S1获取下一目标页数据,直至不存在下一目标页数据即文档中所有页均打印完毕,包括:
S41、调用StartPage()并传入打印机设备上下文,此时打印系统开始准备打印一个新的页面;
S42、通过StretchDIBits()把渲染位图渲染到打印机设备上下文,该方法传入渲染位图、打印机设备上下文(printDC)、像素组合方式。并通过EndPage()结束新页面的打印,此时打印系统会把渲染位图数据转换成矢量图形文件,而因为转换矢量图形文件的位图大小固定为打印宽度(deviceWidth)和打印长度(deviceHeight)的乘积,所有矢量图形文件大小也是固定,不会随水印增多而增大;矢量图形文件是系统用于印刷的中间文件。
请参照图2,本发明的实施例二为:
在步骤S1之前还包括:
1、创建打印设备上下文,调用CreateDC()创建打印设备上下文(printerDC),创建成功后返回设备上下文printerDC;该函数(CreateDC())需要传入打印机名称;打印设备上下文是一个定义一组图形对象及其属性、影响输出的图形方式(数据)结构。windows提供设备描述表,用于应用程序和物理设备之间进行交互,从而提供了应用程序设计的平台无关性;
2、调用StartDoc()为打印机建立一个打印任务,该打印任务对应的函数需传入打印机设备上下文(printerDC);
3、调用SetPrinter()设置打印机打印分辨率、纸张来源、纸张横纵向等参数;
4、初始化FPDFSDK库(用于PDF文档解析),并通过FPDF_LoadDocument()传入打印文档地址,创建文档对象,文档对象作为后续读取文档信息和获取文档内容使用;
5、调用FPDF_GetPageCount()获取打印文档的总页数(pageNumber),该函数需传入打印文档对象;
6、接着循环打印文档对象中每一页进行打印,每一循环包括实施例一种的各个步骤;
7、当所有页面均打印完毕后,打印结束并资源回收。调用EndDoc()结束打印任务,删除打印设备上下文(printerDC),并关闭文档对象,整个打印流程完成。
请参照图3,本发明的实施例三为:
一种水印自动生成终端1,包括处理器2、存储器3及存储在存储器3上并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现实施例一中的各个步骤。
综上所述,本发明提供了一种水印自动生成方法及终端,通过设置固定大小的内存位图,将需要打印的文档中的目标页以及水印都渲染到该内存位图中得到渲染位图,再通过渲染位图进行打印,则对于打印机而言只需要接收以及提前设置好的固定大小的渲染位图,无需对多张水印位图进行处理,从而加快了打印速度并且避免过多占用打印机中的线程,特别是在设置的水印比较密集的情况下,避免了渲染到打印机设备的数据庞大所导致的打印速度慢的问题。并且在打印的过程中,在生成渲染位图时通过读取透明度、旋转角度等参数对水印进行调整,能够满足用户更加多样化的需求;并且在进入正式打印过程之前先对水印数据和页数据融合得到渲染位图之后再进行打印,进一步减小了打印机所处理的数据量;同时在进行像素融合的过程中,引入了降噪机制,通过判断当前渲染的像素点所对应的邻居像素点的像素值,为当前渲染的像素点划出一个范围,避免融合过程中各个处理步骤可能带来的噪点对最终打印效果的影响。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种水印自动生成方法,其特征在于,包括步骤:
获取目标页数据以及水印数据,所述目标页数据包括页内容、页长度和页宽度;
获取打印长度和打印宽度,并根据所述打印长度和打印宽度创建内存位图;
根据所述页长度以及页宽度将所述页内容渲染到所述内存位图中,并将所述水印数据渲染到所述内存位图中,得到渲染位图;
将所述渲染位图转换为打印格式并打印。
2.根据权利要求1所述的一种水印自动生成方法,其特征在于,所述水印数据包括旋转角度、位置坐标以及水印内容;
所述将所述水印数据渲染到所述内存位图中之前包括:
将所述水印内容转换为水印位图;
根据所述旋转角度旋转所述水印位图;
所述将所述水印数据渲染到所述内存位图中包括:
根据所述位置坐标将旋转后的所述水印位图渲染到所述内存位图中。
3.根据权利要求1或2所述的一种水印自动生成方法,其特征在于,所述将所述水印数据渲染到所述内存位图中包括:
若在渲染所述水印数据的水印像素时,所述水印像素的目标渲染位置已渲染了页内容的页像素,则将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值;
根据所述目标像素值更新所述目标渲染位置的像素点。
4.根据权利要求3所述的一种水印自动生成方法,其特征在于,所述将所述页像素的像素值与所述水印像素的像素值通过像素融合算法融合得到目标像素值包括:
若所述页像素为空白像素,则直接将所述水印像素作为融合后的目标像素值;
否则,获取所述水印数据中存储的透明度,根据所述透明度为所述水印像素的像素值以及页像素的像素值加权;
融合加权后的水印像素的像素值以及页像素的像素值,得到目标像素值。
5.根据权利要求4所述的一种水印自动生成方法,其特征在于,所述根据所述透明度为所述水印像素的像素值以及页像素的像素值加权包括:
w1=transparent;
w2=1-transparent;
其中,w1表示所述水印像素的像素值的权重;w2表示所述页像素的像素值的权重;transparent表示所述透明度;
所述融合加权后的水印像素的像素值以及页像素的像素值,得到目标像素值包括:
p=p1×w1+p2×w2;
其中,p表示目标像素值,p1表示在所述目标渲染位置的所述水印像素的像素值;p2表示在所述目标渲染位置的所述页像素的像素值。
6.根据权利要求3所述的一种水印自动生成方法,其特征在于,所述根据所述目标像素值更新所述目标渲染位置的像素点之后还包括:
获取所述像素点的邻居像素点;
计算所述目标像素值与每一所述邻居像素点的邻居像素值之间的差值;
若所述差值超过预设差值的邻居像素点的数量超过预设数量,则对所述像素点进行平滑计算。
7.根据权利要求6所述的一种水印自动生成方法,其特征在于,所述对所述像素点进行平滑计算包括:
将所述像素点以及邻居像素点按照像素值大小顺序排序,得到像素值队列;
获取所述像素值队列的中位数,根据所述中位数更新所述目标渲染位置的像素点。
8.根据权利要求6所述的一种水印自动生成方法,其特征在于,所述若所述差值超过预设差值的邻居像素点的数量超过预设数量,则对所述像素点进行平滑计算之前包括:
获取所述像素点的邻居像素点;
将所述邻居像素点的像素值两两相减后取绝对值,得到多个相对差;
获取所述相对差中的最大差值,以所述最大差值的预设倍数作为所述预设差值。
9.根据权利要求1所述的一种水印自动生成方法,其特征在于,所述将所述渲染位图转换为打印格式并打印包括:
将所述渲染位图转换为矢量图形文件并打印。
10.一种水印自动生成终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-9任一所述的一种水印自动生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311507369.7A CN117573048A (zh) | 2023-11-13 | 2023-11-13 | 一种文档水印自动生成方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311507369.7A CN117573048A (zh) | 2023-11-13 | 2023-11-13 | 一种文档水印自动生成方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573048A true CN117573048A (zh) | 2024-02-20 |
Family
ID=89861757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311507369.7A Pending CN117573048A (zh) | 2023-11-13 | 2023-11-13 | 一种文档水印自动生成方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573048A (zh) |
-
2023
- 2023-11-13 CN CN202311507369.7A patent/CN117573048A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11532173B2 (en) | Transformation of hand-drawn sketches to digital images | |
JP4917104B2 (ja) | 透明を含むアートワークを印刷するシステムおよび方法 | |
JP2012049826A (ja) | 画像処理装置及び画像処理方法 | |
US8659620B2 (en) | Methods and apparatus for rendering images | |
JP3142550B2 (ja) | 図形処理装置 | |
US7136067B2 (en) | Using externally parameterizeable constraints in a font-hinting language to synthesize font variants | |
US7263223B2 (en) | Image manipulation according to pixel type | |
JP3009525B2 (ja) | ベクトル画像描画装置 | |
JP4564986B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
US6430321B1 (en) | Text enhancement | |
US6611632B1 (en) | Device and method for interpolating image data and medium on which image data interpolating program is recorded | |
CN117573048A (zh) | 一种文档水印自动生成方法及终端 | |
US7215342B2 (en) | System and method for detecting and converting a transparency simulation effect | |
CN105704347A (zh) | 图像处理设备和图像处理方法 | |
JP4143613B2 (ja) | 描画方法、描画装置 | |
JP4911585B2 (ja) | 画像処理装置、画像処理方法、プログラム及び情報記録媒体 | |
JP3211417B2 (ja) | ページ記述言語処理装置 | |
JP4710508B2 (ja) | 画像処理プログラム、画像処理装置 | |
JP2011053263A (ja) | 画像処理装置、画像処理方法、画像出力システム、プログラム及び記録媒体 | |
JP6755644B2 (ja) | 文字処理装置、文字処理方法、文字処理プログラム | |
JP2007081886A (ja) | 描画処理装置 | |
JP2019111677A (ja) | 画像処理装置、画像処理装置の制御方法、画像形成装置およびプログラム | |
JP2007122621A (ja) | 情報処理装置、情報処理方法 | |
JP2019192087A (ja) | 情報処理装置、プログラム、情報処理方法 | |
WO2000075869A1 (en) | Image processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |