Image 如何对单色图像进行着色

Image 如何对单色图像进行着色,image,postscript,eps,Image,Postscript,Eps,我的Postscript如何绘制嵌入EPS文件的单色(黑色/白色)图像,以便图像的黑色部分以50%的值显示? 我有一个单色EPS文件,看起来像这样: gsave IDForm execform grestore /setgray_orig /setgray load def /setgray { 0.9 gt {1.0}{0.5} ifelse setgray_orig } bind def 该图像嵌入到Postscript文件中,然后由Postscript文件绘制。绘制时,我希望打印

我的Postscript如何绘制嵌入EPS文件的单色(黑色/白色)图像,以便图像的黑色部分以50%的值显示?


我有一个单色EPS文件,看起来像这样:

gsave
IDForm execform
grestore
/setgray_orig /setgray load def
/setgray { 0.9 gt {1.0}{0.5} ifelse setgray_orig  } bind def

该图像嵌入到Postscript文件中,然后由Postscript文件绘制。绘制时,我希望打印或显示图像,以便将图像的黑色部分绘制为50%的灰色,如下所示:

gsave
IDForm execform
grestore
/setgray_orig /setgray load def
/setgray { 0.9 gt {1.0}{0.5} ifelse setgray_orig  } bind def

EPS使用如下所示的技术嵌入Postscript:


是否可以在execform周围包装任何东西以使黑白图像以50%的值打印/显示?

这实际上取决于EPS文件中使用的操作。例如,您可以如下重新定义setgray:

gsave
IDForm execform
grestore
/setgray_orig /setgray load def
/setgray { 0.9 gt {1.0}{0.5} ifelse setgray_orig  } bind def
然后在退出时重新定义它,如下所示:

/setgray /setgray_orig load def
现在这取决于所使用的setgray,可能您的eps正在使用sethsbcolor、setrgbcolor、setcmykcolor等。如果是这样,那么您也应该将它们包装起来。小心这些东西

请注意,仅将所有灰色定义为0.5是不够的,因为可能有人在用白色填充区域,因此也必须考虑到这一点

Ammendum:您也可以在/ostate save defostate restore指令中定义setgray,这样您就不需要单独卸载功能了