Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Thu, 07 Mar 2013 08:59:52 -0600 From: John Deubert Organization: Acumen Training Newsgroups: comp.lang.postscript Date: Thu, 7 Mar 2013 06:59:52 -0800 Message-ID: <2013030706595248191-john@acumentrainingcom> References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Followup: Making an image into a pattern User-Agent: Unison/2.1.10 Lines: 173 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-DDD7MwLjGf0JXtrxb0P39hsohDVJACWoHuuSg+fMAgH3Sj8rkFcVaXcPzkp47pnBfRR35to8ELodCmC!joFCY5pBX1OhPle9B1XwEe1ZF0Fd/Nvd/8Hx4T1llpxHC8H3d8qbhXZ7DiK88WmNT6s2cnRq X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 4906 Xref: csiph.com comp.lang.postscript:1291 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