|  |  | 
|  | muse: 
  elcome
to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect,
the above definitions are pretty much the way I'd describe my own interest
in computer graphics: it keeps me deep in thought and it is a daily source
of inspiration. | 
 his column
is dedicated to the use, creation, distribution, and discussion of computer
graphics tools for Linux systems.
his column
is dedicated to the use, creation, distribution, and discussion of computer
graphics tools for Linux systems.
 Well,
it's been a couple of months since we last spoke.  I've been working
on a major project for the past year and the last 3 months have been exceptionally
busy.  But the project is done, or very nearly so (a few minor details
left to handle) - and that project is a book on the Gimp.  It's called
The Artists Guide to the Gimp and should hit the shelves
sometime in September.  All I can say is, I hope you like it.  
Writing a technical book is harder than I thought.  My next one is
going to be fictional novel.  You don't have to do a CD, tons of images,
or 2nd editions for those.
Well,
it's been a couple of months since we last spoke.  I've been working
on a major project for the past year and the last 3 months have been exceptionally
busy.  But the project is done, or very nearly so (a few minor details
left to handle) - and that project is a book on the Gimp.  It's called
The Artists Guide to the Gimp and should hit the shelves
sometime in September.  All I can say is, I hope you like it.  
Writing a technical book is harder than I thought.  My next one is
going to be fictional novel.  You don't have to do a CD, tons of images,
or 2nd editions for those.
There were plenty of graphics related news announcements since the last
Muse.  Unfortunately, I just didn't keep up with them and they've
expired from my news feed.  So what I've got this month is pretty
recent info.  I did hang onto a few tidbits from mailing lists I've
been scanning, plus email from a few readers.  It's funny - I get email
about really old versions of the Muse every now and then.  I think
people are still just finding out about it.
 
In this month's column I'll be covering ...
|  | 
|  | |||
| Xi Graphics releases fully integrated Linux distributionThis isn't really graphics related, but Xi is an X server vendor. And X server vendors are pretty important to the Linux graphics world. So, here it is.Xi Graphics is now providing a commercial Linux distribution which includes their Accelerated X server and their maximum/CDE desktop product. Unit price is $214.95 for the Executive Edition and $364.95 for the Developers Edition. For more details: 
 |  | Panasonic PalmCam utilityFredrik Roubert has released a very early version (v0.3) of a driver for the Panasonic PalmCam, an NV-DC1000 digital camera. According to Robert a couple of the features include the ability to specify ranges to download and to preview or delete several images in one session.For more information, check out his web page at 
 The package is available from the following sites: 
 | |
|  |  | ||
| Linux / 3-D SIGGRAPH ReportAt SIGGRAPH '98 in Orlando, Florida Daryll Strauss and Brian Paul organized a special interest group (SIG) session to talkabout Linux, 3-D hardware acceleration, and related topics. Attendence was greater than expected with 100-150 people attending. A summary of presentations taken by Brian Paul, author of the Mesa package,
can be found at 
 
 Blender NewsThere were a number of updates to Blender, the 3D modelling page from NeoGeo. Here is a snapshot of annoucements from their News page:Blender manual (1998-07-10) 
 
 
 | Linux IEEE-1394 (FireWire) Subsystem - Status reportEmanuel Pirker is working on the Linux IEEE-1394 (FireWire) Subsystem for a while now and thought it would be a good idea to give a small status report.IEEE-1394 is the name of a high-speed but low-cost serial bus. Apple has trademarked it as "FireWire". Current implementations reach 200 Mbit/s, soon we will have 400 and then 800 and so on. FireWire is designed for consumer multimedia (e. g. connecting a digital video camera to your PC) and high-speed peripherals (hard disks, CD ROMs, but also scanners, printers). Since it provides quality of service (guaranteed bandwith and bounded latency) it can also be used in industrial real-time applications. Support for Windows (NT) and Rhapsody is coming (some items are already operational) but Linux users also want to benefit from this technology - so Emanual started the development as a university project last winter. He now has a clearly designed subsystem, an Adaptec AIC-5800 driver and some code to test it. Not all FireWire functions can be used now but he has reached a point where the API is stable and other people can also contribute work (e.g. a video camera driver). So if you are interested in this, just email Emanual - more (wo)manpower is desperately needed. Contact addresses: 
 Some late entries: ImageMagick
4.0.8 
 For more details on these, check out Freshmeat.net. | ||
|  | |||
XVScan is based on the popular xv image manipulation software for X Windows and includes a fully licensed copy of xv. It is source available commercial software.
If you've never used John Bradley's XV image manipulation software, it's difficult to describe how powerful it is. XV reads and writes files in a dozen different formats, provides powerful color-map editing, window capture, color-space conversion, cropping, image manipulation algorithms, and the list goes on.
XV gives you powerful image and color-map manipulation, support for over a dozen image formats, as well as the Visual Schnauzer, and an easy to use graphical interface to view and catalog your scanned images. Supported images formats include: PNG, GIF, JPEG, progressive JPEG, TIFF (compressed and uncompressed), PostScript (requires ghostscript), PBM/PGM/PPM (raw and ascii), X11 Bitmap, XPM (X PixMap), Sun Rasterfile,
With XVScan, you now have the ability to scan directly into XV in a very cost efficient (and more importantly time efficient) manner.
See our website http://www.tummy.com/xvscan/ for a full list of supported scanners.
What's New in Version 1.80
The current version of XVScan is 1.80 dated 1998-06-11 based upon XV version 3.10a dated 12/29/94.
XVScan is $US50 for Linux, HP-UX, FreeBSD and BSD/OS for free ftp delivery. XVScan is $US80 for Solaris bundled with SGLite SCSI driver. CD-ROM Media $US20. Contact xvscan@tummy.com to order or order on the web at https://www.tummy.com/ordering/onlineorder.phtml. Payment accepted via check, Visa/Mastercard/Discover/AMEX cards.
Contact tummy.com, ltd, phone: (970) 223-8215, fax: (408) 490-2728,
URL: <http://www.tummy.com/xvscan/>
email: <xvscan@tummy.com>
To avoid confusion and to clearly state that these servers are part of XFree86, S.u.S.E. has changed the naming scheme of its servers. Instead of the XSuSE prefix, they now use XFCom, which is short for XFree86 Compliant. XFree86 compliance is intended to mean that the sources for these servers are ALREADY part of the XFree86 development sources and will be released as part of one of the next XFree86 releases. This is the major difference to servers with the XBF prefix, which stands for X Binary Free and means that sources for these servers are only available under NDA and therefore cannot be included in XFree86.
Following this naming scheme, we have renamed the XSuSE_Elsa_GLoria server to XFCom_3DLabs and XSuSE_SiS to XFCom_SiS. Additionally, we have added to new servers that support the very popular Rendition Verite chipsets and the all-in-one Cyrix MediaGX CPU that includes graphics functionality.
XFCom_Rendition supports the Rendition Verite V1000, V2100 and V2200 chips. Among the boards supported are
XFCom_SiS supports
Binaries for other operating systems as well as glibc binaries will be released, soon. For all questions and support concerning these servers please do NOT contact XFree86 but send email to x@suse.de instead.
| Name | Aspect Ratio | |
| Super 35 | 1:1.33 | |
| Academy | 1:1.37 | |
| Wide Screen | 1:1.66 | |
| Wide Screen | 1:1.85 | |
| 16:9 | 1:1.77 | |
| Cinemascope | 1:2.35 | 
As far as I remember the scenes for Jurassic Park were rendered in 8000x6000 (1:1.33), but often much less is sufficient, like 4000x3000.
Again, Bernd Sieker supplies an answer:
For TV the horizontal resolution is not fixed, whereas the number of lines is; use the following for sqaure pixel aspect ratio:
PAL:  768x576
NTSC: 640x480
Note that the number of lines are fixed and should not be altered, all
systems work with these values.
 
A: Juergen Schlag responded:
|  | 
Roderick A. Anderson asked about converting GIF's to interlaced GIF's.
 
I used to pride myself on the number of languages I had taught myself over the years. In recent times, however, I've found myself falling behind the curve, having grown comfortable and satisfied with C. Although I still think C suffices for most projects I realize that I need to move on to newer, object oriented, languages. I hate C++. I've done a little work with it and it's just a perversion of C in my eyes. Java is my long term goal, primarily because I make a living doing graphical interfaces and Java is the future for people like me. Perl, on the other hand, is simply the tool of choice for the Web. I didn't want to learn yet another scripting language, but it's hard to avoid if I'm going to try to do Web developement. So, Perl it is.
Fortunately, creating dynamic Web pages with Perl turns out to be pretty simple. A perl module called, conveniently, Msql allows me easy access to my databases and the CGI.pm module makes generation of HTML a breeze. Both the msql database and CGI.pm have printed texts available so learning both is a bit easier than the traditional man-page browsing with which I've grown up. We'll take a look at how we can use both the Msql and CGI.pm modules to create a very simple dynamic page.
This discussion does not expect you to understand how to program in perl, but it would help. We're going to step through the process without going into huge detail here. Also, when I talk about the database I'll use lowercase - msql - but when I talk about the perl module I'll use uppercase - Msql. You should, however, be a little familiar with how SQL statements look, or at least not be afraid of looking at them. What we'll use in this example is pretty basic and you should be able to interpret what's going on from the code and the explanations.
First, what tools do you need for this experiment?
Ok, now let's create a simple database. Make sure the msql database is installed properly (follow the directions with the package - it's pretty straightforward to build and install). Start the database daemon:
# Create a new table in the database
create table tools (
   tooltype     int
not null,                
# 0: hand tool;  1: power tool
   toolname     char(255)
not null           
# name of the tool
)
\p\g
# Insert a few entries into the table
insert into tools values (0, 'hammer') \g
insert into tools values (0, 'screwdriver') \g
insert into tools values (1, 'table saw') \g
# Import modules of interst.
use CGI qw/:standard :html3 :netscape/;
use Msql;
Ok, you've opened the connection to the database. Let's grab the tools table entries.
The next two lines just define the variables rows and result to be local. However, these variables will both be list variables. Lists are special in perl - you can access all the entries in the list using the @ symbol as a prefix, or you can access individual elements of the list by prefixing the variable name with a $ symbol and using an array element number. We'll see examples of both in a moment.
The next 4 lines are a while() loop that process each row returned from our SELECT query. The fetchrow() method is used to assign the current row to the @result list. A row, of course, consists of two entries: the tooltype and the toolname. The push() line says to append the following to the @rows list:
Below the while() loop is another local variable, tools_list. This variable will be used to output a table in our page. The table() function comes from CGI.pm and is used to generate a table. Note that neither this nor the td() functions in the while() loop have actually been output yet. We're just storing these in variables for later output. Again, the curly braces enclose arguments for the table HTML tag. After that is another embedded CGI.pm function - Tr(). This function has an uppercase first letter only because perl has its own "tr" function and there needs to be a distinction between the two. In most cases, the CGI.pm functions will use lowercase only. The Tr() function creates a table row. Embedded within this is are all the table elements we stuffed into the @rows list. Still with me? Great! All that's left is to output this back to the browser.
      Tr(
        
td({-align=>'CENTER', -valign=>'CENTER'}, $tools_list),
      )
   )
);
# End of HTML output.
print end_html;
Save all this to a file called web.pl in your cgi-bin directory on your web server. Make sure the script has execute permissions. You can see this little scripts output by accessing www.graphics-muse.org/cgi-bin/web.pl. It's not much, but it shows how easy it is to integrate a little bit of database info into a web page. For what it's worth, it only took me about 2 days to get all this down, mostly by experimenting with examples in the printed texts. It would have been quicker, but I did it at work and ducking from coworkers took most of my time.
Speaking of documentation, the texts you want are
|  | 
|  | 
| Gimp 1.0For those of you who have been
 As I mentioned at the top of this column (you know, the part you probably don't read each month), I've spent the last year working on a book on the Gimp. SSC, the publishers of the Linux Journal and the host of the Linux Gazette, had contacted me in June of 1997 about the possibility of doing the book. I thought it was a great idea, so I jumped into it. The hard part has been trying to keep the work up to date. Much of the writing had to wait till there was some light at the end of the 1.0 development tunnel. Not suprisingly, the past 3 months I've been buried in updates and last minute details. This has been the longest last minue of my life. But I'm fairly happy about the book. It will be printed in 4-color on glossy paper and there are lots of images and examples. There is also a CD which will include all the images from the book, plus lots of other good stuff. There are some things I didn't get in because there just wasn't any time left. They'll have to wait for the next edition or for articles in the Linux Journal. Or maybe in the 'Muse. Anyway, one year is plenty for the first edition. Gimp 1.0 source actually comes in three packages: the core distribution, the extras package, and the unstable package. The core and extras package build and install fairly easy. The unstable package includes a number of very handy plug-ins but you have to understand how to build them a little more than the core and extras packages. Some of the more interesting features of the 1.0 release include a rather good Print plug-in that can work with a number of HP and Epson printers directly and also supports Postscript output. So you can print directly to a postscript capable printer or run the output through Ghostscript. |  | No more musing this month. | 
|   | ||
| Another great Plug-in is the GFig plug-in, which
allows you some limited drawing capabilities.  You can draw circles,
curves, boxes and other shapes, repositions them, render them on separate
layers using any brush shape and color.  The interface is a bit clunky,
but it's still an improvement on the default drawing tools. Other recent improvements over older development releases include: 
 There are still a few things that need work, not the least of which is support for more color models. But this has been discussed at length on the developers list and a few people appear to be working on it, at least to some extent, for the 1.2 release. The Gimp will have a numbering scheme like the Linux kernel, where even numbers are public releases and odd numbers are developers releases. Currently, the 1.0.4 version is the latest public release. There is a 1.1 I intend to focus more of my energies towards the Gimp from now on. 
The 'Muse columns future depends on some discussions I'm having with SSC
about another project, but for now it's just discussion.  In any case,
after all this time, I finally plan on working on some plug-ins and scripts. 
Since 1.0 is out, I can't whine about not having a stable version anymore.  
I'll be hanging out on the Gimp-User mailing list trying to help out there. 
With 1.0 out, it's time for the user community to show what can be done
with the tools. 
 | 
|  | 
|  | 
| Online Magazines and News sources C|Net Tech News Linux Weekly News Slashdot.org General Web Sites 
 Some of the Mailing Lists and Newsgroups I keep an eye on and where
I get much of the information in this column 
 |  | 
Let me know what you'd like to hear about!
Graphics Muse #1, November 1996
Graphics Muse #2, December 1996
Graphics Muse #3, January 1997
Graphics Muse #4, February 1997
Graphics Muse #5, March 1997
Graphics Muse #6, April 1997
Graphics Muse #7, May 1997
Graphics Muse #8, June 1997
Graphics Muse #9, July 1997
Graphics Muse #10, August 1997
Graphics Muse #11, October 1997
Graphics Muse #12, December 1997
Graphics Muse #13, February 1998
Graphics Muse #14, March 1998
Graphics Muse #15, April 1998