Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder2.hal-mli.net!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!216.196.98.142.MISMATCH!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 09:16:17 -0600 From: John Deubert Organization: Acumen Training Newsgroups: comp.lang.postscript Date: Thu, 7 Mar 2013 07:16:17 -0800 Message-ID: <2013030707161752834-john@acumentrainingcom> References: <2013030706595248191-john@acumentrainingcom> 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: 187 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-s46zKhzqIvN2wYNBTLcNkAFfoAX0WscVdrV4QexihLQAhvqSk2t55eYND7qGsYcXi+bRFI56eXGXLBL!TqyN9t8j7bn3tnnPreaHKST+9q+kUwC0oOfXctWEFlHoNsG6WXNq/GzoSLx9PFA3RSUMScXJ 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: 5588 X-Received-Bytes: 5796 Xref: csiph.com comp.lang.postscript:1292 On 2013-03-07 14:59:52 +0000, John Deubert said: > 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 Hmmm. I see that several of the less-than symbols got mangled by my newsreader, so none of the dictionaries are closed. Odd. I assume you can figure out where they go. Here's a dropbox link to an unmangled version of the code: https://dl.dropbox.com/u/29544294/ImagePatternExample.ps I'll leave it there for a week or so. - J -- ======== 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