From Matthew.Belk@noaa.gov Sat Jul 1 16:34:04 2000 From: Matthew.Belk@noaa.gov (Matthew Belk) Date: Sat, 01 Jul 2000 11:34:04 -0400 Subject: [Image-SIG] PIL problem with PNG Message-ID: <395E0F6B.3BE8AD2F@noaa.gov> Hello all. I am using PIL 1.1 with Python 1.5.2 and zlib 1.1.3 on HP-UX 10.20. As best as I can tell, PIL has compiled correctly. I can import _imaging and Image. My problem arises when I try to save a PNG back to disk. Here is a sample: >>> import _imaging >>> import Image >>> im = Image.open('basegray,png') >>> im.mode 'RGB' >>> im.save('mainmap.png') The error message I am getting is this: IOError: decoder zip not available Does anyone have any ideas? Thanks for your help. Matthew Belk National Weather Service Charleston, WV From sabren@manifestation.com Sat Jul 1 13:11:09 2000 From: sabren@manifestation.com (Michal Wallace) Date: Sat, 1 Jul 2000 08:11:09 -0400 (EDT) Subject: [Image-SIG] PIL problem with PNG In-Reply-To: <395E0F6B.3BE8AD2F@noaa.gov> Message-ID: On Sat, 1 Jul 2000, Matthew Belk wrote: > The error message I am getting is this: > IOError: decoder zip not available > Does anyone have any ideas? Thanks for your help. Hey, I know this one! :) It just means that zlib wasn't properly linked in. change the path in the Setup file and recompile. Cheers, - Michal ------------------------------------------------------------------------ www.manifestation.com www.sabren.com www.linkwatcher.com www.zike.net ------------------------------------------------------------------------ From ken@be.com Sat Jul 1 10:48:14 2000 From: ken@be.com (Ken McDonald) Date: Sat, 1 Jul 2000 02:48:14 -0700 Subject: [Image-SIG] General question on JPEG file format Message-ID: <005201bfe341$7a3eab10$6501a8c0@prion> This is a multi-part message in MIME format. ------=_NextPart_000_004F_01BFE306.CD3C4010 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable This isn't really a Python or PIL question, but I thought the people reading this particular list were likely to know the answer :-) My understanding is that JPEG is really just a compression algorithm, and that what most people think of as JPEG files are actually JFIF files. From perusing the specs for a JFIF file, it also seems that JFIF makes provision for the inclusion of thumbnails and other metadata about the main image. However, I've never actually seen this used by picture viewers, creators, etc. Since I just got a shiny new digital camera, I'm interested in writing a program that would take images from the camera, and insert, if possible, and thumbnail and other info (f-stop, exposure, etc.) into the image file. Is this possible? Are there reasons this isn't commonly done with JPEG/JFIF files? Thanks, Ken ken@be.com ------=_NextPart_000_004F_01BFE306.CD3C4010 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
This isn't really  a Python or PIL = question,=20 but I thought
the people reading this particular list = were likely=20 to know
the answer :-)
 
My understanding is that JPEG is really = just a=20 compression
algorithm, and that what most people = think of as=20 JPEG files
are actually JFIF files. From perusing = the specs=20 for a JFIF
file, it also seems that JFIF makes = provision for=20 the inclusion
of thumbnails and other metadata about = the main=20 image. However,
I've never actually seen this used by = picture=20 viewers, creators,
etc. Since I just got a shiny new = digital camera,=20 I'm interested
in writing a program that would take = images from=20 the camera,
and insert, if possible, and thumbnail = and other=20 info (f-stop,
exposure, etc.) into the image file. Is = this=20 possible? Are there
reasons this isn't commonly done with = JPEG/JFIF=20 files?
 
 
Thanks,
Ken
ken@be.com
------=_NextPart_000_004F_01BFE306.CD3C4010-- From sales@lookelu.com Sat Jul 1 17:26:10 2000 From: sales@lookelu.com (The Western Web) Date: Sat, 1 Jul 2000 16:26:10 Subject: [Image-SIG] The Western Web has just finished our new classified ad section. Please check it out and make sure that your classified ad has been moved. We are in the process of moving ads at this time, but would appreciate your help to insure that if your ad has been moved. If it hasn't been moved or you would like to place a new ad feel free to do so. We have added new sections in the classifieds, hay/feed/shavings, livestock, camelids, cattle, deer and elk, poultry, rabbits, sheep, livestock equipment, swine, donkeys, dogs and mules. We are currently receiving 100 new ads a day, and over 20,000 unique hits a day. Message-ID: <20000701232516.35C631CE48@dinsdale.python.org> The Western Web has just finished our new classified ad section. Please check it out and make sure that your classified ad has been moved. We are in the process of moving ads at this time, but would appreciate your help to insure that if your ad has been moved. If it hasn't been moved or you would like to place a new ad feel free to do so. We have added new sections in the classifieds, hay/feed/shavings, livestock, camelids, cattle, deer and elk, poultry, rabbits, sheep, livestock equipment, swine, donkeys, dogs and mules. We are currently receiving 100 new ads a day, and over 20,000 unique hits a day. http://www.thewesternweb.com The new classified section is automated now and your ads will be posted immediatly. You can also add Multi-Media files (photos, sound and video) on line. This is a free service to you so use it at your will. http://www.westernwebclassified.com We have also finished the Western Web Search Engine, which is solely optimized for the western way of life. Please stop by the search engine add your site. http://www.lookelu.com Our message board is also now up and running so please use it . http://www.westernmessageboard.com/cgi-bin/Ultimate.cgi We are sorry for any inconvenience. Thank you, http://www.thewesternweb.com This ad is being sent in compliance with Senate bill 1618, Title 3, section 301. http://www.senate.gov/ ~murkowski/commercialemail/S771index.html Here is a more detailed version of the legal notice above: This message is sent in compliance of the new e-mail bill: SECTION 301. Per Section 301, Paragraph (a)(2)(C) of S. 1618, http://www.senate.gov/~murkowski/commercialemail/S771index.html Further transmissions to you by the sender of this email may be stopped at no cost to you by sending a reply to this email address with the word "remove" in the subject line. From registration@knowquest.com Mon Jul 3 10:27:36 2000 From: registration@knowquest.com (WH-question) Date: Mon, 3 Jul 2000 05:27:36 -0400 Subject: [Image-SIG] Has the Internet killed Romance? Message-ID: <20000703023028.AE0CE1CE69@dinsdale.python.org> Hello, Members of our community - the WHquestion free info arena - posted the following questions: "Has the Internet killed Romance?"=0A= http://www.whquestion.com/emailentry.asp?p=3D2v1ovhHRIb_dSxJkgIehwly;2bDS= 47J=0A= =0A= "Would you like your homepage to be removed after you die?"=0A= http://www.whquestion.com/emailentry.asp?p=3D2v1ovhHRIb_dSxJkgHehwly;2bDS= 47J=0A= =0A= "WHat's the easiest way to learn to use HTML?"=0A= http://www.whquestion.com/emailentry.asp?p=3D2v1ovhHRIb_dSxJkgCehwly;2bDS= 47J=0A= =0A= "Can you make real friends on the net? If not, why should I build myself = an home page?"=0A= http://www.whquestion.com/emailentry.asp?p=3D2v1ovhHRIb_dSxJkgGehwly;2bDS= 47J=0A= =0A= To answer one of the questions above, click on the link underneath it. (Please do not hit the "reply" button, but use the provided link.) If you hold the answers to other essential questions, or if you feel like asking some questions yourself, please drop by our site at: http://www.whquestion.com/ And WHy not forward one of the questions above to a friend? Maybe she or he can answer and receive a reward. To see what's it all about click here: http://www.whquestion.com/ Not interested?=20 Just reply to this email with "remove" as the subject line and we won't bother you again. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This message template was automatically sent to your e-mail address following a referral by a user of WHquestion. If you feel this message was erroneously sent, please reply to this e-mail with "remove" as the subject line, or report this to us at: abuse@whquestion.com Sender information: Neuronia Ltd. Email: contact@WHquestion.com, Tel: +972 (3) 6394304 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D WHy? WHo? WHat? WHen? WHere? WHquestion is the answer! http://www.whquestion.com/ From fredrik@pythonware.com Mon Jul 3 11:30:01 2000 From: fredrik@pythonware.com (Fredrik Lundh) Date: Mon, 3 Jul 2000 12:30:01 +0200 Subject: [Image-SIG] help compiling PIL References: Message-ID: <00a801bfe4d9$a6cd1ec0$0900a8c0@SPIFF> michal wrote: > One thing: make really did not like the backslashes at the ends of the > lines in the Setup.in file, so I took them out. So the _imaging lines > for my Setup file look like this: > > _imaging _imaging.c decode.c encode.c map.c display.c outline.c path.c > -IlibImaging -IlibImaging/libImaging.a > -lImaging if you remove the backslashes, I'm pretty sure you have to put everything on a single line. and you seem to have mixed I and l options too. changing that to (on one line): _imaging _imaging.c decode.c encode.c map.c display.c outline.c path.c -IlibImaging libImaging/libImaging.a -lImaging should help, I think. From Juergen Hermann" (added by postmaster@mail.ngi.de) Hi! I built PIL on NT4 using VC++5. Had no bigger problems (though the README leaves out a few things). The README says "Contributions are welcome", so anyone interested? Bye, J=FCrgen From fredrik@pythonware.com Fri Jul 7 20:39:32 2000 From: fredrik@pythonware.com (Fredrik Lundh) Date: Fri, 7 Jul 2000 21:39:32 +0200 Subject: [Image-SIG] General question on JPEG file format References: <005201bfe341$7a3eab10$6501a8c0@prion> Message-ID: <004501bfe84b$13b259f0$0900a8c0@SPIFF> ken wrote: > This isn't really a Python or PIL question, but I thought > the people reading this particular list were likely to know > the answer :-) looks like we're all too busy... > My understanding is that JPEG is really just a compression > algorithm, and that what most people think of as JPEG files > are actually JFIF files. From perusing the specs for a JFIF > file, it also seems that JFIF makes provision for the inclusion > of thumbnails and other metadata about the main image. > However, I've never actually seen this used by picture > viewers, creators, etc. /.../ Are there reasons this isn't > commonly done with JPEG/JFIF files? I think you just answered your own question ;-) Very few applications support this, which is why very few application writers bother to implement it... (this also in- cludes library writers like yours truly -- I cannot remember seeing any widely used application that supports this, and nobody has ever asked for JFIF metadata support for PIL...) From joelh@neosoft.com Mon Jul 10 00:17:54 2000 From: joelh@neosoft.com (joelh@neosoft.com) Date: Sun, 9 Jul 2000 18:17:54 -0500 (CDT) Subject: [Image-SIG] Can't show() images Message-ID: I just installed Python1.5.2 and PIL1.1 and am having problems displaying images. The installs seem to have worked fine (other than a test error on popen2 which I patched). I'm running RedHat 6.1, kernel 2.2.12, GNU libc 2.1.2. In following the PIL Tutorial I obtain: >>> import Image >>> im = Image.open("test.ppm") >>> print im.format, im.size, im.mode PPM (128, 128) RGB >>> im.show() Traceback (innermost last): File "", line 1, in ? File "/mydir/lib/python1.5/site-packages/PIL/Image.py", line 697, in show _showxv(self, title, command) File "/mydir/lib/python1.5/site-packages/PIL/Image.py", line 977, in _showxv file = self._dump(format=format) File "/mydir/lib/python1.5/site-packages/PIL/Image.py", line 314, in _dump file = file + "." + format TypeError: illegal argument type for built-in operation It seems that 'format' is set to 'None' and python doesn't like to concatenate that to a string. (Run by itself, xv displays the test.ppm file fine.) I then tried the Postscript Printing script in the Tutorial: ##### import Image import PSDraw im = Image.open("test.ppm") title = "lena" box = (1*72, 2*72, 7*72, 10*72) # in points ps = PSDraw.PSDraw() ps.begin_document(title) # draw the image ps.image(box, im, 75) ps.rectangle(box) ps.end_document() ##### It generated a large postscript file but when I try to view it in ghostscript I get the following error: Error: /undefined in gsize The postscript file contains the following (in addition to a lot more): gsize 226.560000 370.560000 translate 0.960000 0.960000 scale gsave 10 dict begin /buf 384 string def 128 128 scale 128 128 8 [128 0 0 -128 0 128] I'm obviously new to python and have no idea what's going on. Any help would be much appreciated. Thanks jh From vmoreno@germinus.com Mon Jul 10 07:55:55 2000 From: vmoreno@germinus.com (Victor M. Moreno) Date: Mon, 10 Jul 2000 08:55:55 +0200 Subject: [Image-SIG] PIL & PIDDLE Message-ID: <00b501bfea3b$e50b8250$150fa8c0@germinus.com> Hello, I am using with success python and the piddle library. Now I need to insert an image in a ps documente generated by piddle, and so I decided to used the PIL libraray. When trying to use the PIL library, I get an error like: Erro: The _imaging C module is not installed. I have the _imaging.dll, I have place it in the path and where the python program executes, but no luck, How to install a dll module in python? Any ideas, thanks a lot Victor From kuncej@mail.conservation.state.mo.us Mon Jul 10 17:53:23 2000 From: kuncej@mail.conservation.state.mo.us (Jeffrey Kunce) Date: Mon, 10 Jul 2000 11:53:23 -0500 Subject: [Image-SIG] "Corrupt JPEG data" messages Message-ID: I've been using PIL (on NT and 98) to batch process hundreds=20 of JPEG files, mostly making thumbnails of various sizes. I occasionaly get messages like: Corrupt JPEG data: 32 extraneous bytes before marker 0xd9 Usually, but not always, the resulting thumbnails are messed up. The problem is not always repeatable - I can run my script a second time, and it processes the same files with no problem. Also, the error message gets displayed in the console window, even if I have stdout and stderr redirected to a file. This makes it hard to monitor my script to find which images are bad. Any suggestions on how to deal with this? Thanks. --Jeff From ENVI-GmbH@t-online.de Tue Jul 18 21:18:08 2000 From: ENVI-GmbH@t-online.de (Paul Weihrauch) Date: Tue, 18 Jul 2000 22:18:08 +0200 Subject: [Image-SIG] PIL 1.1; Compiling Fonts Message-ID: <3974BB80.DE2E2727@envi-gmbh.de> Hi to all, I just started to use PIL. I want to use it for dynamicly produced pictures in the WEB (priority GIF-Files). My first problem was to find any *.pil files in my system (SuSe Linux 6.3). Luckilly I've find some *.bdf files in my Star-Office-Distribution. So I started to compile them using bdf2pil.py. The effect was, that I've got several error messages: In line 115,116 I've got a key error because the font description string in Star-Office uses lower-case syntax and the slant and spacing dictionaries in bdf2pil.py use uppercase. Ok, no problem: row 115: font[4] = bdf_slant[font[4]] is changed to: font[4] = bdf_slant[string.upper(font[4])] and row 116: font[11] = bdf_spacing[font[4]] is changed to: font[11] = bdf_spacing[string.upper(font[11])] The next one was little bit harder for me: row 155: d = Image.core.hex_decoder("1") comes with an error: TypeError: function requires exactly 2 arguments;1 given I've changed this line to: d = Image.core.hex_decoder("1","1") Now it works, but I don't know why. Is there anybody with similar problems? I'm looking for "ready-to-use" PIL-fonts. Are there any? Is it possible to draw text vertically or better in any angle? Is someone working on an extension to PIL, to make that possible? Thanks for all answers Paul Weihrauch@envi-gmbh.de From kcazabon" Message-ID: <00ad01bff144$21e9bde0$16107118@rct1.bc.wave.home.com> I produced a bunch of PIL fonts a while back, which Piers Lauder (spelling? sorry!) kindly posted to his FTP site. The address is: http://www.cs.usyd.edu.au/~piers/python/pilfonts.html Additionally, I've attached a script that you can use to add rotated and/or colored text to images with. It's a little memory hungry, but it works well. I submitted this to Fred as well, and I 'think' he's planning on putting it in an upcoming release of PIL. Kevin. (email me offline if you want this in a complete .py file, there's a bunch more tools in it too.) ########################## import Image, Imagefont, Imagedraw from numeric import pi, cos, sin anchorPoints = {"NW":(0.0, 0.0), "N":(0.5, 0.0), "NE":(1.0, 0.0), "W":(0.0, 0.5), "C":(0.5, 0.5), "E":(1.0, 0.5), "SW":(1.0, 0.0), "S":(1.0, 0.5), "SE":(1.0, 1.0), "nw":(0.0, 0.0), "n":(0.5, 0.0), "ne":(1.0, 0.0), "w":(0.0, 0.5), "c":(0.5, 0.5), "e":(1.0, 0.5), "sw":(1.0, 0.0), "s":(1.0, 0.5), "se":(1.0, 1.0)} def addRotatedText(im, text, where, rotation, font, color = (0,0,0), anchor = "NW", maxSize = None): anchor = anchorPoints[anchor] font = Imagefont.load(font) draw = Imagedraw.Draw(im) draw.setfont(font) draw.setink(color) textsize = draw.textsize(text) #print "Textsize: %s x %s pixels" %(textsize[0], textsize[1]) del(draw) # do the math to figure out how big the text box will be after rotation rotationRadians = ((2.0*pi)/360.0) * rotation rotatedWidth = int(float(textsize[0]) * abs(cos(rotationRadians)) + float(textsize[1]) * abs(sin(rotationRadians)) + 0.5) rotatedHeight = int(float(textsize[0]) * abs(sin(rotationRadians)) + float(textsize[1]) * abs(cos(rotationRadians)) + 0.5) rotatedtextsize = (rotatedWidth, rotatedHeight) # make the text box big enough for the original text in any rotation if textsize[0] > textsize[1]: largetextsize = (textsize[0], textsize[0]) else: largetextsize = (textsize[1], textsize[1]) xOffset = int((float(largetextsize[0] - textsize[0])/2.0)+0.5) textIm = Image.new("L", largetextsize, (0)) # draw a mask of the text unrotated draw = Imagedraw.Draw(textIm) draw.setfont(font) draw.setink((255)) draw.text((xOffset, (textIm.size[1]/2) - (textsize[1]/2)), text) # rotate the text mask textIm = textIm.rotate(rotation) # crop it down to the real used area xOffset = int((float(textIm.size[0] - rotatedtextsize[0])/2.0) + 0.5) yOffset = int((float(textIm.size[1] - rotatedtextsize[1])/2.0) + 0.5) textIm = textIm.crop((xOffset, yOffset, xOffset + rotatedtextsize[0], yOffset + rotatedtextsize[1])) # fit it in MaxSize if specified and valid if maxSize != None and type(maxSize) == type(("tuple", "tuple")) and len(maxSize) == 2: if textIm.size[0] > maxSize[0] or textIm.size[1] > maxSize[1]: textIm.thumbnail(maxSize) # create an image mask the size of the whole image that you're putting the text on mask = Image.new("L", im.size, (0)) # place the text mask in the proper place where = (where[0] - int(float(textIm.size[0])*anchor[0] + 0.5), where[1] - int(float(textIm.size[1])*anchor[1] + 0.5)) mask.paste(textIm, where) del(textIm) # create an image the full size of the supplied image, in the color of the text you want to apply colorIm = Image.new(im.mode, im.size, color) # paste the color onto the image, using the text mask as a mask im.paste(colorIm, (0,0), mask) del(colorIm) del(mask) return im From cotten@mediarewards.com Fri Jul 28 16:43:00 2000 From: cotten@mediarewards.com (Cotten) Date: Fri, 28 Jul 2000 08:43:00 -0700 Subject: [Image-SIG] Using ImageDraw text Message-ID: Dear Pythoneers: I am trying to use the PIL to create dynamic pie charts. Got the pieslices displayed just fine, but am having a bear of a time getting the text labels to display. I have the most recent docs from pythonware, but they don't describe how the text methods are supposed to be used. Looking to the source hasn't gotten me much further. How should I solve my immediate problem? And where can I find more complete documentation for the PIL? (Still trying to get the link on O'Reilly's Python DevCenter to work...) Thanks in advance for your generous help! Cotten Blackwell ----------- The offending code: ----------- thisFont = ImageFont.ImageFont() draw.text(xy = (lineEndX-40, lineEndY-20, lineEndX+40, lineEndY), text=thisSlice, fill=sliceFill, font=thisFont) The error: ----------- Traceback (innermost last): File "", line 1, in ? File "Macintosh HD:garden:pyscripts:im.py", line 102, in pieChart draw.text(xy = (lineEndX-40, lineEndY-20, lineEndX+40, lineEndY), text=thisSlice, fill=sliceFill, font=thisFont) File "Macintosh HD:Applications:Development:Python 1.5.2c1:Extensions:Imaging:PIL:ImageDraw.py", line 151, in text self.im.draw_bitmap(xy, font.getmask(text), ink) AttributeError: draw_bitmap From kuncej@mail.conservation.state.mo.us Fri Jul 28 18:04:23 2000 From: kuncej@mail.conservation.state.mo.us (Jeffrey Kunce) Date: Fri, 28 Jul 2000 12:04:23 -0500 Subject: [Image-SIG] Using ImageDraw text Message-ID: >I am trying to use the PIL to create dynamic pie charts. Got the = pieslices >displayed just fine, but am having a bear of a time getting the text = labels >to display... This is not a direct answer, but I suggest you look at PIDDLE http://piddle.sourceforge.net/=20 It's a python module for creating two-dimensional graphics in a manner = that is=20 both cross-platform and cross-media. PIL is supported as a target. Even if you don't want to use PIDDLE itself, you can look at the code to = see=20 how it renders text with PIL. --Jeff From sales@lookelu.com Sun Jul 30 20:01:48 2000 From: sales@lookelu.com (The Western Web) Date: Sun, 30 Jul 2000 19:01:48 Subject: [Image-SIG] The Western Web Newsletter Message-ID: <20000731015947.1A6751CEBC@dinsdale.python.org> THE WESTERN WEB WEEKLY NEWS LETTER Week of July 24, 2000 Serving Over 75000 Recipients With your assistance "The Western Web" continues to improve and your input is helpful.Our goal is to make "The Western Web" THE one place stop for all your Horse, Livestock and Western Life Style needs. If You have added your site to our search engine, please make sure everything is correct. If you haven't noticed we have upgraded the look and capabilities of The Western Web search engine. You can now type in your search word and find all related site links. Don't forget to add your Web Site to our search engine too. http://www.searchthewesternweb.com This week you might take a look at our "Events Calendar" in our Classified Ad section. You can post your upcoming events in subcategories such as: Events, Shows, Cuttings, Team Roping, Gymkhana, Clinics, Trail, Auctions, Rodeos, Reining, Barrel Racing, Team Penning and Performance & Halter. We also have a subcategory for "Other" to place any event not categorized. These ads are free and you can add pictures, video and audio. A note to our subscribers who have posted ads, with you User Name and Password you can update your events. http://www.westernwebclassified.com/cgi-bin/classifieds/classifieds.cgi At last, an online service available with the horse lover in mind, The Sale Barn.Com (www.thesalebarn.com). The Sale Barn offers an online auction specifically for horse-related items, whether you are buying or selling. The Sale Barn auctions off 100s of items daily with many items in the Hot Items Listing starting at $1.00! Usually there are from 150 to 200 items starting at only $1.00. From saddles, bridles, bits, spurs and unique gift items. Register now to qualify for our weekly drawing. The current prize is a 34 x 36 Wool Blend Show Blanket with wear leathers and silver conchos valued at $99.95! This item is featured on our Home Page at www.thesalebarn.com. Registration is free on our secure site with no credit card necessary. The Sale Barn is amongst the top 10 visited horse sites on the Internet with over 10,000 hits a day. A perfect opportunity to turn unneeded horse related items in to cash. The Sale Barn is the ebay of the horse world with categories directed to specific items such as saddles, headstalls, bits, spurs, ropes, gift items, horse trailers, etc. http://www.thesalebarn.com We appreciate you patronizing our sponsors. You to can have your web site on our front page along with Banks Power, Roo-hyde Saddlery, GMC, Bootbarn.com,Truckloads.net, Zig Zigler, Comforce, The Gaited Horse, Cowboy Tack, Painted Acres Ranch,The ShawnOshine,Tom Balding Bits & Spurs, Centenary of Federation and Stoxrus.com. You can find our reasonable rates at: http://www.thewesternweb.com/Advertising/Advertising.htm While at The Western Web site take a look at our message board: http://www.westernmessageboard.com/cgi-bin/Ultimate.cgi We can Design & Host your web site. Check out our low domain name registration prices at: http://www.thewesternweb.com/Web_Design/Domain_Name_Registration.htm For you convenience, there are links to these sites and more, from The Western Web Home Page. http://www.thewesternweb.com/ If you receive this message in error or want us to remove you from our newsletter e-mail list, please reply to this email address with the word "Remove" in the subject line. Thank You, http://www.thewesternweb.com