调配油墨是彩印工艺中的一项重要工作,这项工作做得如何,直接关系到产品的印刷质量。目前,许多中小型印刷企业,甚至包括一些大型印刷企业对于油墨色彩的配置还停留在手工操作的基础上。油墨的调试主要是根据厂家提供的基准颜色(标准色),利用经验对油墨进行大量的实验获得想要的颜色值。所以,每个厂家都有自己的一套油墨配方,而每个工人根据自己的经验也有自己的配方表,这在使用上有很大的局限性也不利于现代化成批量生产的要求.本文提出一种利用计算机来实现色相分析的方法。该方法利用计算机将所有已知配方比输入数据库中作为标准,数据库的大容量和计算机的实时性使得色彩的油墨配方的查找和对比变的相对容易。在利用特制的硬件装置采集到需要的色彩后,和标准色进行比较,查表找到合适的配比。从而避免了上述的不足。
目前国内有关研究主要是集中在如何提高印刷图像质量方面[1,2];对油墨配比如提高方面[3~5],多是方法的研究,软件编写多采用C语言。对于色相分析还没有完整的关于使用计算机系统代替手工调配油墨的研究,只是文献中有关于色彩管理系统的提法[6]。
1色相分析系统的组成
系统结构如图1所示,包括硬件、软件两部分。
图1 色相分析系统的组成
2软件系统的设计流程图
软件系统的设计流程图见图2.
2.1 简介
又称VB7.0是微软公司在VB6.0之后推出的最新版本,集成在Visual studio7.0中,与VC++7.0和C#组成了.NET构架。
Visual Basic 是Windows环境下简单、易学、高效的一种编程语言,其快速开发的特性深受程序员的喜爱,但是.NET以前版本的Visual Basic面向对象的能力远远不能满足程序员的要求,这也是越大项目越少用Visual Basic的原因。Visual 新增和加强了许多新的面向对象的特征,如继承、重载、多态性等等。语言的新特点也包括了对进程的控制和低层结构的操作,这些新特征使得Visual 再次成为程序员关注的焦点。使用.NET可以很好的实现系统需要的软件功能,它良好的界面和丰富的面向对象的使用功能为以后的开发提供了良好的接口。
图2.软件系统的设计流程图
2.2.利用实现扫描
将需要实现的颜色通过硬件装置输入计算机,是该软件的第一步。实际系统中使用的是CCD,但在软件的调试过程中,使用扫描仪代替。在Visual 中通过扫描仪获得所需的图像信息有3种基本的方法:通过图像处理软件,比如说Photoshop等,通过它们的扫描图像的功能,加工成一定格式的图像后再在自己的系统中利用。通过扫描仪接口。该接口是在安装扫描仪时提供的,它实际上是一个Plugin插件,它通过一系列函数来控制扫描仪。通过构件技术来控制扫描仪。利用第1种方法能减少编程的复杂度,但是系统的集成度不高,用户使用上也不方便;第2种方法能在驱动程序级直接控制扫描仪,能在编程上提供最大的灵活性和可控性;第3种方法能充分利用Visual 的可视化构件技术,安全、灵活、自由地利用扫描仪。但实际上第3种方法也是建立在扫描仪接口之上的。
扫描程序的实现代码如下:
{I mg Scan: TI mg Scan }
//检查是否安装了扫描仪器
If I mg scan. Scanner Available then
Ax I mg Scan1 .Open Scanner( )
//打开扫描仪
Ax I mg Scan1 . Scan To=2
Ax I mg =”..\images\”
//图像将被保存
Ax I mg Scan1 .Start Scan ( )
//开始扫描图像
Ax I mg Scan1 .Close Scanner ( )
//关闭扫描仪
Ax I mg =”..\images\”
//设置显示路径
Ax I mg y ( )
//显示图片
End If
保存后完成此功能模块。
2.3.图形文件的数据库存入
在数据库编程中处理图形的方法之一就是把图形作为数据库的一个字段存放到数据库中;第2种方法就是把图形的文件名作为一个字段保存到数据库中,而一张张图片则作为独立的文件放在数据库所在的文件夹中。第2种方法虽然是处理图形的一种简易方法,但不能较好地保护图形文件;第1种方法虽然编写程序比较麻烦但安全性高。
代码实现如下:
Imports System. Data . Sql Client
Imports System. IO
Public Class Form1
Inherits System . Windows . Forms . form
Dim My Control Array As picbox
Dim My Control Array1 As atext
#Region “Windows窗体设计器生成的代码”
Public Sub New( )
My Base .New( )
’该调用是Windows窗体设计器所必需的。
Initialize Component ( )
’在Initialize Component ( )调用之后添加任何初始化
End Sub
’窗体重写dispose以清理组件列表。
Protected Overloads Overrides Sub Dispose(By Val disposing As Boolean)
If disposing Then
If Not (components Is Nothing)Then
Components . Dispose( )
End If
End If
My Base .Dispose(disposing )
End Sub
2.4.获取参照色的RGB值
Visual 中涉及到颜色的属性一般有Back Color (设置或返回对象的背景色)和Fore Color (设置或返回对象的前景色)。通常这些属性是在设计时预先设置,而在运行时一般不改变。此项目需要在程序中使用颜色的值,即在运行过程中要获得当前图片的颜色值。Visual 中用于存储颜色的类型有OLE__COLOR,其实质就是长整型,因而可声明为Long类型。要获得颜色值,通常有两个函数,即QBColor和RGB。
其中, QBColor需要传入一个整型值,范围是0~15。QBColor函数只能到16种不同的颜色。相比之下,RGB函数的功能就要强大得多,它要传入3个整型值,范围都是0~255,分别代表构成某颜色的三原色(红绿蓝)的值,共有256×256×256=16777216种组合。如红色:RGB(255,0,0);蓝色:RGB(0,0,255)。大多数情况下,RGB使用的情况较多,那么如何通过一个长整型颜色值来得到其对应的RBG3个值呢?可以通过以下代码来实现:
Red =color Mod 256
Green =(color\256)Mod 256
Blue=color\256\256
3 结 论
本文介绍使用VB.NET语言编程,实现对对照色RGB值的读取以及采集到的数据如何存储于数据库等功能。在大量实验数据的基础上找出相应的规律;采用数据库中查表功能,找到合适的配比,从而代替手工操作,提高了工作效率和准确率。软件通过在工厂中的实际应用,效果良好。
参考文献:
[1]李 伟.现代印刷媒体生产中的主要成像技术与应用[J].印刷技术,2003,31:17-23.
[2]周宝根.印前操作系统规范化与图像质量控制[J].印刷技术,1999,(10):11-13.
[3]胡桂南.认识色相误差与灰度[J].网印技术,2002,(3):45-45.
[4]雷海东.用密度计测量油墨的色相偏差与灰成分[J].印刷杂志,2003,(6):62-62.
[5]杨汉林.色相偏差的补救方法[J].印刷技术,2001,(9):50-52.
[6]张桂兰.浅谈色彩管理系统[J].印刷技术,2000,(2):18-22.