Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.postscript > #1291

Re: Followup: Making an image into a pattern

From John Deubert <john@acumentraining.com>
Organization Acumen Training
Newsgroups comp.lang.postscript
Date 2013-03-07 06:59 -0800
Message-ID <2013030706595248191-john@acumentrainingcom> (permalink)
References <d7b639ca-28cd-4922-9583-67edf417cdcd@googlegroups.com>
Subject Re: Followup: Making an image into a pattern

Show all headers | View raw


On 2013-03-07 12:57:17 +0000, alamraquib@gmail.com said:

> On Friday, September 25, 1998 12:30:00 PM UTC+5:30, Darrin Cardani wrote:
>> Thanks to Martin Bailey for his help with getting an image into a pattern
>> so I could apply an imagemask to it. For those of you who are interested, I
>> learned the following things in my search:
>> 
>> If you want to use a color image as a pattern, you must use the 5 operand
>> version of the colorimage command. It will not accept the dictionary
>> version of the command. Apparently this is because the colorimage command
>> does not require the current colorspace to be specified.
>> 
>> If you then want to apply an imagemask to it, you must also use the 5
>> operand version of imagemask, rather than the dictionary version. I don't
>> really understand why, but that's the way it is.
>> 
>> And you cannot use TilingType 2 in your pattern, I believe.
>> 
>> So my working code looks like this:
>> 
>> [...headers deleted...]
>> currentfile 4096 string
>> %%BeginBinary:  4107
>> readstring
>> [...4096 bytes deleted...]
>> %%EndBinary
>> pop
>> /ImageData  exch def
>> 
>> /ImageDraw {
>> 32 32 scale
>> 32 32 8
>> [ 32 0 0 -32 0 32 ]
>> { ImageData }
>> false 4
>> colorimage
>> } bind def
>> 
>> <<
>> /PatternType    1
>> /PaintType      1
>> /TilingType     1
>> /BBox           [ 0 0 32 32 ]
>> /XStep          32
>> /YStep          32
>> /PaintProc  {
>> begin
>> ImageDraw
>> end
>> }
>>>> 
>> matrix
>> makepattern
>> 
>> /ImagePat exch def
>> 
>> /Pattern setcolorspace
>> ImagePat setcolor
>> 
>> 72 72 scale
>> 
>> currentfile 128 string
>> %%BeginBinary:  139
>> readstring
>> [...128 bytes of mask data deleted...]
>> %%EndBinary
>> pop
>> /MaskData   exch def
>> 32 32 true [ 32 0 0 -32 0 32 ] { MaskData }
>> imagemask
>> 
>> showpage
>> 
>> I hope that's helpful to someone!
>> 
>> Darrin
>> 
>> --
>> Darrin Cardani
> 
> Hello,
> I am also working on the Patterns in PostScript.
> My image Data size is more than 65535. How that can be done. Could you 
> please provide a solution.

Hi, Darrin -

Actually, the modern versions of image and imagemask work perfectly 
well with an image-based pattern. Here's an example:

=========== Cut here =============

/ImageData  <
	ff0000 ff0000 00ff00
	00ff00 00ff00 0000ff
	0000ff 0000ff ff0000
> def


/ImagePat	<<
	/PatternType    1
	/PaintType      1
	/TilingType     1
	/BBox           [ 0 0 9 9 ]
	/XStep          12
	/YStep          12
	
	/DoImage {
		/DeviceRGB setcolorspace
		9 9 scale
		<<
			/ImageType 1
			/Width 3
			/Height 3
			/BitsPerComponent 8
			/ImageMatrix	[ 3 0 0 -3 0 3 ]
			/DataSource ImageData
			/Decode [ 0 1 0 1 0 1 ]
		>> image
	} bind

	/PaintProc  {
		begin
		DoImage
		end
	}
>>
matrix
makepattern
def

/Pattern ImagePat setpattern

275 375 translate
72 72 scale

<<
	/ImageType 1
	/Width 50
	/Height 50
	/BitsPerComponent 1
	/ImageMatrix [ 50 0 0 -50 0 50 ]
	/DataSource currentfile
		/ASCII85Decode filter
		/LZWDecode filter
	/Decode [ 0 1 ]
>>
imagemask
J3Vsg3$]7K#&$;kY]q,L"Nu?=!&.@P!X-u'3$Q^>KPe$sNko5'p\XY>!0T5cnjja6
IfG)9fY@f@%VIG45`ib]r"1#5J'MEZq?.:a&"p^jkR']arC`qETChaU*X;NaYU[tS
rF(3YJ%jh/Jbt&8!djtJ('\W9eIuLYj.H[IZK6+`[@cjpPZd*p^;&ATp'&$0_8B6W
(7AV9]/6KsT9De[:FA$(5GsLMp1AjQcVbhs2u!HV0%,8UHAeT!)$H>mi(YU*~>

showpage

=========== Cut here =============

I happened to have much of this code lying around in examples from 
various classes I teach.

- John

-- 
========
John Deubert
Acumen Training
PostScript & PDF Engineering Classes & Consulting
www.acumentraining.com

Learn PostScript programming techniques
Read the free Acumen Journal
acumentraining.com/acumenjournal.html

Back to comp.lang.postscript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Followup: Making an image into a pattern alamraquib@gmail.com - 2013-03-07 04:57 -0800
  Re: Followup: Making an image into a pattern John Deubert <john@acumentraining.com> - 2013-03-07 05:55 -0800
  Re: Followup: Making an image into a pattern John Deubert <john@acumentraining.com> - 2013-03-07 06:59 -0800
    Re: Followup: Making an image into a pattern John Deubert <john@acumentraining.com> - 2013-03-07 07:16 -0800
      Re: Followup: Making an image into a pattern luser- -droog <mijoryx@yahoo.com> - 2013-03-10 22:53 -0700
        Re: Followup: Making an image into a pattern John Deubert <john@acumentraining.com> - 2013-03-11 06:17 -0700

csiph-web