Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!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: Mon, 11 Mar 2013 08:17:46 -0500 From: John Deubert Organization: Acumen Training Newsgroups: comp.lang.postscript Date: Mon, 11 Mar 2013 06:17:46 -0700 Message-ID: <20130311061746163-john@acumentrainingcom> References: <2013030706595248191-john@acumentrainingcom> <2013030707161752834-john@acumentrainingcom> <0abf3b75-8685-4eb6-9f95-1811c04eeaf0@googlegroups.com> 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: 376 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-LL10fnfPpuQJ+xvXCe9cmx0lyr8+VmcKp/qRuJlTKoz1sJSKeUxspKrVG58dkqVIy325g/+jlXYrum5!fS7HXECJMGNXOdiMeJZ2vlkZ+cvu70v44dy5R03JPgCcA/X9b1cZ6BV8Or+UpMxqqHGW 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: 7306 Xref: csiph.com comp.lang.postscript:1308 On 2013-03-11 05:53:35 +0000, luser- -droog said: > On Thursday, March 7, 2013 9:16:17 AM UTC-6, John Deubert wrote: >> 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 >> > > Uh, you did see the original message was from 1998, right? I can be remarkably unobservant sometimes. Oh, well. Not the most embarrassing thing I've ever done. Maybe he was still chewing on the problem. These things can obsess one, you know. - 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