Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Technology

Feature:The Story of PNG 130

Greg Roelofs, author of PNG: The Definitive Guide, has written a feature on the PNG graphic format. The format has many technical advantages, yet it still isn't gaining acceptance. Personally, I just want a real alpha channel on web pages (well, and anti-aliased fonts, but lets cross one bridge at a time), Anyway, read what Greg has to say on the subject of PNG:

I hadn't intended to write anything up so soon, but lately there's been a lot of FUD and some general cluelessness about the Portable Network Graphics (PNG) image format, so here's an update from somebody who knows a tiny bit about it.

First of all, PNG is certainly not dead, although it obviously has not taken the Widely Webbed World completely by storm (which, in the eyes of the esteemed Mr. Veen, amounts to the same thing). For better or for worse, Netscape Navigator and Microsoft Internet Explorer pretty much define what counts as acceptable Web technology, and they only began supporting PNG natively in the autumn of 1997 (versions 4.04 and 4.0, respectively). As various Slashdotters have noted, neither one really supports PNG well yet, at least with respect to alpha transparency and gamma correction, but that's coming; let me return to that issue in a moment.

PNG has been making steady progress, however, particularly in non-Web applications. It has advanced from being a newsworthy ``extra'' to being an expected, standard component of image applications; in other words, a viewer or editor that ships without PNG support is considered deficient by both consumers and the trade press. That's a moderately subtle point--it doesn't necessarily leap right out at you and scream, PNG has arrived, dammit!, but it's nevertheless quite a significant milestone for any new technology. Mundane can be good. (By the way, I maintain the PNG home site and list known PNG-supporting applications of various persuasions on half a dozen pages; stop by if you're in need of something, and please let me know if I've missed any!)

But that's just one data point. Everybody's favorite technical publisher, O'Reilly and Associates, not only includes PNG chapters in a number of its books (including Web Design in a Nutshell and the soon-to-be-released Programming Web Graphics with Perl & GNU Software ), they also agreed to publish an entire 700-page book completely devoted to the Portable Network Graphics format: PNG: The Definitive Guide . It consists of around 300 pages of main text, 100 pages of program listings (both Unix/X and 32-bit Windows, under a BSDish license, freely downloadable soon), 250 pages of specifications, some fairly cool color figures, and assorted odds and ends; I happen to know because I wrote it. :-) (It just went into production on Monday, so it should hit the shelves in a few months, plug plug. I'll be updating the web page with dates and whatnot as soon as I find out myself.)

In addition, PNG has been published as an informational Internet RFC and a a W3C Recommendation (the very first one), and it's now wending its way through the slowly grinding gears of joint ISO/IEC standardization. That will all help ensure its longevity, but it's also fairly boring to most of you, I'm sure.

So getting back to the Web issue, let me briefly summarize PNG's basic capabilities:

  • palette-based support (1, 2, 4, 8-bit), like GIF
  • grayscale support (1, 2, 4, 8, 16-bit)
  • truecolor support (24, 48-bit), like TIFF or (sort of) JPEG
  • binary transparency, like GIF (except including grayscale and RGB modes, not just palette-based)
  • alpha transparency (256 or 65536 levels of partial transparency), like TIFF
  • alpha-palette transparency (that is, palette has RGBA entries, not just RGB), unlike anything else on the planet
  • direct support for gamma correction and color correction
  • lossless, unpatented compression
  • 2D interlacing, somewhat like progressive JPEG
  • no animation (but a closely related format called MNG)

The patent issue is largely history, except to shareware and freeware authors, for whom it's still quite real--Unisys lawyers continue their apparent crusade to kill all low-cost GIF-supporting software. What really matters to Web developers, however, is PNG's support for palette images (no, they don't all have to be really fat, 24-bit monsters); its support for alpha transparency even in palette images; its support for gamma and color correction; and the fact that its compression is lossless (which is why 24-bit PNG images are so fat, especially compared to lossy JPEG). In other words, for the same number of bytes as a binary-transparency GIF image, you can have a lovely alpha-palette PNG image that, thanks to gamma correction, will not look too light on Macs or too dark on PCs. The alpha support means it can be anti-aliased or drop-shadowed to look good against any background, not just a single, flat color. Note that MSIE 4.0 already supports gamma correction, and 5.0 is supposed to do full alpha transparency; we'll find out next month, I guess. Mozilla/Netscape 5.0 will also support both alpha and gamma, or else--I'm the nominal ``owner'' of Mozilla's PNG support, and now that the book is done, I intend to do some serious hacking. (Apologies for the 10-month delay!)

Since PNG pushes the envelope on a lot of image-related stuff--alpha transparency (no other Web formats), RGBA-palette images (no other format, period), gamma and color correction (almost no other formats), and even compression/filtering (it has a bunch of free parameters that one can tweak)--many of the current applications are somewhat behind in supporting some of the features. Be patient; things are steadily improving. I won't point fingers at any underperformers here, but I will note that the GIMP is quite strong in compression and 32-bit RGBA and should have fully working gamma code in the next release after 1.0.2; and Fireworks 1.0 is already partway there with RGBA-palette support and should be completely spiffy by version 2.1 or 3.0. (I didn't quite get my feedback in on time for it to affect the 2.0 release. If only they'd had a Linux version to try...)

I'm hopeful the book will help many of the others--it includes a lot of material aimed at helping programmers to improve their code, but also a lot of stuff to help users avoid problems and make the best of what options they've got. And if I have time while I'm working on Mozilla, I plan to release a free, automatic 32-bit to 8-bit (RGBA to RGBA-palette) converter to handle what seems to be the hardest PNG feature to support. Such conversion literally gives you a factor-of-four reduction in file size with essentially no visible loss (no more than normal RGB-to-palette conversion with nice dithering, anyway).

So...that, in a largish nutshell, is the past, present and future status of PNG. As for new competition, well, let's just say that there have been lots and lots and lots of fantastically improved, incredibly stupendous image formats that have come and gone over the years; ``WI'' is merely the latest, and SVG and JPEG2000/JPEG-LS are right around the corner. Anybody remember Johnson-Grace/AOL's ART format? How about Iterated Systems' fractal format (FIF)? Or some of the quadtree-based ones, or SPIHT, or FlashPix, or JPiG, or CMP, or ePIC, or HARC-C? Heck, even JPEG with arithmetic compression is considerably better than standard DCT-Huffman JPEG, but does anybody actually use it? No. Proprietary standards are simply not tolerated very well on the Web. Even free, open standards like PNG (with free, open-source, non-GPL'd reference libraries) have a huge barrier to climb. It took ``standard'' JPEG four years to catch on; it's taken PNG four years to catch on (yes, it's really been that long, and 2.5 years since the W3C Recommendation); and, barring largish miracles--e.g., Netscape and Microsoft cooperating--it will take any other new image format just as long.

There you have it. There's lots more info on the web site, and there are a couple of mailing lists for folks who really want to get gnarly with PNG. Oh, and please buy the book. ;-)

This discussion has been archived. No new comments can be posted.

Feature:The Story of PNG

Comments Filter:
  • A lot of png's I've drawn (In Gimp) have had problems with alpha in various programs, both linux, windows and mac.

    When I compiled Gnome I had various problems.

    What is the 'Correct' version of libPng to be using?
  • That would have been perfect :-)
  • Under Help, Click "Export Transparent Image" in Photoshop 5.0 or click File, Save a Copy and select PNG.

    Photoshop 4.0 also supports PNGs in transparent and normal varieties, click File, Save a Copy and select PNG.

    --
  • by volkris ( 694 )
    Does anyone know where I can get software to play with the ART format? I read a bunch about it a while ago before AOL bought it completely, and have always had a curiousity about it.

    Even just a compressor/viewer would be interesting to me.


    Anyone know?


    ~Chris Carlin
  • > why don't web pages use PNG?

    Well, I can tell you why mine [airnet.net] doesn't. Looking at my logs, about a third of my hits are from v3 browsers, which don't support it. I like the idea of PNG, I'm sure it's technically superior (I'm not a graphics guru, but I'll take everybody's word for it), and eventually I'll start using it. But since graphics are a very minor part of my site -- mostly decorations to prevent the text from becoming boring -- I see no need to risk about a third of my (small) audience for the sake of technical advantages that are in my particular case irrelevant.

    Still, though, I support the idea of PNG and wish every success to Greg and his book and his format. The sooner my .gifs are obsolete the better.

    Craig

  • Probably the reason all the Windows browsers are doing anti aliased fonts is because Windows itself does anti-aliased fonts. It's a registry setting that can be toggled manually, using the Plus Pack, or with shareware such as WinHacker.
  • It's definitely a nice format. (And I know a lot more about it now that I did when i work up this morning.) I plan to move my web pages to PNG as soon as the GIMP supports PNG's alpha stuff.


    --Phil (And I try to make good use of the alt= parameter, too. No one should be left out.)
  • Well, as I understand it the TIFF spec is very nice. The only problem is that it's too big, and not everyone implements the same parts of it. If you're using compatible implementations, everything's fine, but incompatible implementations can render the image unusable. JPEGs aren't good formats for image editing because some information gets lost every time a jpeg is saved. Multiple edit-save iterations can leave a jpeg looking very bad.

    I don't do a great deal of image editing, but for what I do, I use XCF as my "master" image, TIFF for transporting images, and JPEG or GIF for the final image to be displayed. As soon as the GIMP gets good support for aplha channels in PNGs, I'm probably going to start using PNG in place of TIFFs and GIFs.



    --Phil (Hmm.. I could have gotten more TLAs and ETLAs in my post--I'll have to try harder next time.)
  • I keep hearing all this anti-aliased stuff (gnome, png, etc). But I'm not a big graphics person. Does anyone have a good def?

    Thanks,
    Brandon
  • Thanks guys. Seems I knew the definition, just never the term :-) It makes a lot of sense with alpha channels, especially when I've seen the problems with transparent gifs on a colorful background.
  • You can vote for PNG support in Java on Sun's "Bug parade", as it does not only allow you to vote for the removal of bugs, but also for new features.
    PNG support is currently the second most requested feature (first is Linux support).
    If you want to vote for PNG, you have to join the Java Developer Connection (free), the URL of the bug parade is:
    http://developer.java. sun.com/developer/bugParade/index.html [sun.com]. The PNG feature has the Bug id 4101708.
  • Photoshop does support PNG, at least as of version 4, I don't remember if version 3 supported it or not, but I think it did.

    Nathan
  • In common technical usage "lossy" means that the image compression routine automatically throws out image quality (versus losing image quality by not supporting as many colors, or gamma, or whatever). This is a distinction worth preserving.

    Sure if you convert a 24-bit image to 8-bits, you lose all those colors. However, if you had only 8-bits to begin with (such as with line art), you are not losing quality by saving to GIF. With GIF, whether or not you lose image quality depends on the image. With "lossy" formats like JPEG, you're losing image quality every time you save the file.
    -----
  • For my web site development I plan to use PNG in the future, along with Java Servlets. Three main ideas bounce around in my head:

    1. store all graphics as postscript and run a converter (via Servlets) which preprocesses the page and delivers a [.gif|.jpg] or .png based on browser support.

    2. store graphics as .gif or .jpg and use the servlet to convert to convert to .png if the browser supports it.

    3. store separate, but equivalent copies of image.gif and image.png and use a servlet to choose the right graphic based on browser support.

    I like solution number 1 the best, and I'm anticipating using PNG in the future. I believe that maintaining copyright might be important sometime, and PNG makes that easier for the content deliverer.
  • Instead of ps you might consider storing you
    images in xcf (gimp native format) or png becous I
    don't think ps will suprot all the alpha features
    and that png or xcf will. you could then use gimp
    in batch mode (ie no X) to convert the imiges on
    the fly to almost any format including difrent
    color depths and compreshion ratios depending
    on what the broweser could execpt. for efficiency
    you should cash any on the fly convertions you
    do no mater what aproch you take.

  • If you want it, I've got a whole swag of library code to handle it. It works as content handlers in Java so pointing a URL at it, you will get a BufferedImage back (or Image if you need 1.1 spt). The only difference here is that you can't use it with Toolkit.getImage() | createImage()

    http://www.vlc.com.au/~justin/java/image s/ [vlc.com.au]
    ftp://ftp.vlc.com.au/pub/imageloader_0 .9.zip [vlc.com.au]

    Basically, the list of supported formats are:

    • TIFF
    • JPEG
    • BMP
    • XPM/XBM
    • PNG (1.0, not 1.1 yet)
    • GIF (but wrapper around standard java impl)
    • TGA
    All the code is LGPL'd except where the back end libraries have different licenses as provided by their authors.

    The code has been tested under Solaris, HP-UX and Win32 (precompile bins for Win32 only).

  • Advanced Imaging API from Sun/Javasoft. JAIA EA1 and EA2 had read-only support, but write support is coming in the next release, I believe

    We tried using JAI, and frankly it sucks. It still uses Sun's image loading classes that consume 4 times the amount of memory that the image should take. It is very slow and major repaint problems. That's why we wrote our own. Now, in my code there somewhere, I think I put the encoders too. It supports JPEG and PNG and we had TIFF/BMP underway. I'll check. If it doesn't include the writers, ping me and I'll send you the code.

  • Anti-aliasing comes into play when you have a curve of any sort or a sharp edge. Try drawing a circle on graph paper and you'll see that you get a jagged edge around the curves. Anti-aliasing fills in the surrounding areas with blending colors to smooth out the jaggies. For transparency that can cause a problem when only one color is allowed as transparent like in GIF. Since the fill-in colors are a blend between the background and the object, there are many shades in between, but only one can be transparent. You end up with a halo of the blending colors around the object.
  • Paint Shop Pro at http://www.jasc.com. Doesn't implement it entirely, but it is there.
  • There's also a native Win32 port of GIMP at:
    http://www.gimp.org/~tml/gimp/win32/
  • At work we have perhaps 5 different tiff-reading programs for converting to other file formats. This is because none of them are able to read all the tiff variants we have encountered. You have to try each of them until you find a program that works.

    Tiff is seriously broken by being too fancy. The fact that PNG supports exactly one compression format is a big win and I expect PNG will completely replace Tiff very soon (replacing GIF is less likely...)
  • NO! That's a different format!

    The whole point of PNG is that it is relatively simple and small and the job it does can be easily described ("lossless image storage").

    If you are tired of jpeg feel free to write your own lossy compression scheme, but make it a different file format, please!
  • That's what the PNG home site is for! You can find PNG-supporting image editors at http://www.cdrom.com/pub/png/pngaped.html [cdrom.com] and image viewers at http://www.cdrom.com/pub/png/pngapvw.html [cdrom.com] (the supported OSes are indicated for each entry--look for "Windows 9x/NT" in your case). There are also other pages for converters, 3D apps, browsers, etc.
  • Get a better browser, and you'll see PNGs. I don't have server control (cdrom.com), but I do use the client-side OBJECT method. When your browser supports that correctly, the PNG home site will "magically" convert into a mostly PNG/JPEG site.

    That said, I haven't bothered to convert tiny web graphics like the web balls; I may use POV-Ray to do so with true anti-aliasing. Too bad its alpha-output support isn't very good.

    Oh, and check the home page again for the big blue "PNG Images" section.
  • FWIW, the GD home page has said that since 1995. I had an entry for it on one of the PNG pages ("coming") for three years before axing it a few months ago. I think Thomas is off doing other things and hasn't bothered to update his personal web pages for quite some time.
  • > Help, somebody! Do the browsers support MNG ???

    No, not yet. Partly that's because the MNG spec hasn't completely settled down, partly it's because the spec is fairly complex, and partly it's because there's no libmng yet. But the spec is very close to being frozen; the recent changes have had to do with defining a "lite" version (two, in fact--"low complexity" and "very low complexity"), which addresses the second issue. And as for the third, Gerard Juyn has offered his MNGeye code as the basis for a libmng, so it's just a matter of some folks finding time to work on that. Volunteers are more than welcome, of course! :-)

    Btw, once the Mozilla/SeaMonkey imagelib code settles down, it should be much easier to add new formats (like MNG) to Mozilla and thereby to Netscape. Expect to see MNG support at least in unofficial releases within a year or so. (Right now it's a *bitch* just getting the damn thing to compile and run correctly, at least under Linux. But it's rapidly getting better.)
  • > I need 16bit unsigned greyscale.

    You're in luck. All of PNG's samples are unsigned integers, and grayscale covers the widest depth range: 1, 2, 4, 8 and 16 bits. (RGB and RGBA are both either 8-bit or 16-bit samples, i.e., 24/32-bit or 48/64-bit.)
  • > I believe NS had it before IE.

    Actually, no. IE 4.0b1 had PNG support in the spring of 1997, and 4.0 final was released in October 1997. Navigator got PNG support in version 4.04 in November 1997, with no warning whatsoever.

    Little-known fact: at least two or three Netscape folks were on the PNG mailing list within two or three weeks of the beginning of the project (January 1995), but obviously nothing much came of that.
  • Folks, please check the toolkits page [cdrom.com] for a number of PNG-supporting Java options, including the Advanced Imaging API from Sun/Javasoft. JAIA EA1 and EA2 had read-only support, but write support is coming in the next release, I believe.

    And I'll be sure to add a link to the godlike Justin's toolkit, too; I wasn't aware of that until now. (Bad Justin. I guess it was all that VRML hacking. :-) )
  • See either http://www.cdrom.com/pub/png/pngs.html [cdrom.com] or http://www.cdrom.com/pub/png/pngs-img.ht ml [cdrom.com] for some transparent PNG images (especially the bottom one), using either OBJECT or IMG, respectively. There will be at least three more as soon as I have time to add them to the web pages. Two are already available in the img_png subdirectory: IceAlpha-sml.png [cdrom.com] and RedbrushAlpha-sml.png, both by [cdrom.com]Pieter van der Meulen [mailto]. (The third one is an excellent shot of an owl, and I may add a magnolia tree, too. All are 8-bit RGBA-palette images, btw.)

    Oh, and http://www.cdrom.com/pub/png/pngpic2.html [cdrom.com] has more PNG images, though not with transparency.
  • libpng 1.0.3 apparently resolves whatever problems the Imlib folks were seeing. It does have one typo (misplaced parenthesis on line 181 of pngrutil.c; should be just before the || operator, not the "> 8"), but I haven't heard of any obvious visual bugs that can be traced to it. Certainly I haven't seen any yet.
  • Version 3 only supported PNG via third-party plug-ins. Adobe added native support to 4.0. It's not very good support (and in some ways it got worse in 5.0), but they're aware of it and are finally working on fixing it for 6.0.

    I devoted 40% of chapter 5 [cdrom.com] to Photoshop 4 and 5. :-)
  • ...hence the title of my article (which was actually submitted on 24 February, I think, less than a month after the ping story).

    Another minor factoid: I had the penguin (or "pnguin") until Tim O'Reilly stepped in and said that penguins only go with Linux books (even though all of their Linux books to date use horses, sigh...). Anyway, my second choice was a duck, but the designer who does the covers apparently decided that wasn't cute enough and gave me a rat instead. Bargh. I still have the first draft with a penguin on the cover, though...
    he was pretty cute, too.
  • There is no separate alpha channel in 8-bit (palette-based) images. Instead, the palette effectively has RGBA entries rather than the usual RGB entries, thanks to the one-to-one correspondence between the PLTE chunk and the tRNS chunk. (This is basically how GIF does transparency, too, except that its "tRNS chunk" only holds one entry and can only be fully transparent.)

    Anyway, the upshot is that the compression engine sees only WIDTH x HEIGHT bytes (or fewer, if pixels are packed 2 or more per byte) regardless of how many palette entries are partially or fully transparent. And since PNG's compression engine is better than GIF's (by roughly the same factor as gzip over compress), it can be smaller than the "corresponding" GIF. Of course, that GIF would only be an approximation to the RGBA-palette PNG image.
  • GIMP does support the PNG and the alpha channel...but it is sort of very difficult to use. I only succeeded doing it once some time back and I cannot for life of me remember how to do it so I can achieve the transparent feature under GIMP.

    From the GIMP section of Chapter 4 [cdrom.com] (I mistakenly said Chapter 5 in another reply): open an RGB image, right click on it and select Layers -> Add alpha channel, and edit away. For example, select the Lasso tool, go to Dialogs -> Tool Options... -> Feather checkbox and set some feather radius (for the width of the variable-transparency part), then draw a loop around something, invert the selection (right button -> Select -> Invert) and erase (Edit -> Clear). Or you can do gradients or whatever tickles your pickle.

    What you cannot do is any sort of transparency with palette images, as I recall. That may have changed in 1.1, but I haven't heard about it. The last time I checked, the PNG plug-in did not appear to have any transparency support at all, and the GIMP image model does not lend itself well to PNG's RGBA-palette mode.
  • Opera supports PNG natively since version 3.51 (just before Christmas). It has some problems with transparency, though; see the browsers page [cdrom.com] for details.
  • Check the W3C's current working draft for SVG [w3.org] (Scalable Vector Graphics).
  • Good point. If everyone makes a conscious decision to switch their websites from GIF/JPEG to PNG/JPEG, the world will be a better place. :)
    I plan to do mine tonight.
  • Arggh! Get an account, and turn Katz off. Stop complaining and do something.
  • And now for the real general definition of anti-aliasing, for all you real nerds out there.

    Aliasing occurs whenever you sample any signal (whether it be an image for display onscreen, or audio, or whatever) at too low a rate, so that some of the information sampled is above the so-called Nyquist rate.

    The Nyquist rate is 1/2 the sampling rate, and it represents the maximum bandwidth you can correctly sample without aliases.

    In pictures, aliases usually show up as jaggies, but there are other artifacts, such as beat patterns (ever scan a dithered photo?) and so on that are also due to aliasing.

    In audio, such as in over-compressed long-distance phone service, aliases usually sound like high-pitched tones which respond in the reverse direction of the pitch of whomever is speaking.

    Anti-aliasing is simply the process of avoiding or removing aliasing artifacts in a particular signal. In the case of 2-D graphics, this is usually performed with some sort of smoothing operation. In 3-D graphics, people go to town with bilinear/trilinear pixel interpolation on textures and mip-mapping to handle changes in the sample rate due to the perspective transform, etc.... In audio, it's usually known as a "low pass filter."

    And that, my friends, is what anti-aliasing is.

    (Yes, I'm an engineer for a DSP company.)



    --
  • Anti-aliased fonts are done by the windowing system. X Windows doesn't do them; Win95 does, with this patch from M$ [microsoft.com].
  • Don't forget about endianess!

    Any good graphics program will happily accept either byte ordering, but I have encountered some that don't like one or the other.

    -Alan

  • I remember when I first made my all png homepage, like 4 years ago or so.
    The browser I used was old AMosaic for Amiga which supported png through the nice datatype-system of AmigaOS.
    If my memory doesnt play me a trick, png also worked with Arena.

    Anyways, Amiga showing the way, as usual, not that anyone cares... :)
  • I personally plan to convert all the images on http://sine.com/ [sine.com] to PNG as soon as Photoshop can properly export them.

    That site already won't display properly in most browsers - though it will in Gecko.

  • I hardly think that a lack of knowledge of the fifties and sixties - one of comics, in particular, a field I've never been interested in - qualifies me as a "cultural illiterate".

    Lost In Space had been dead ten-plus years when I popped out of my mother's womb; I wasn't around back then. And yet I've got a more comprehensive knowledge of American cultural history than most people I work with - people who were alive when LIS was hot stuff.

    Sidenote: Hey Rob! Can we get an autoignore function for lamers who're too cowardly to leave an email address? Thanks.

  • I was originally planning on writing a simple, open source, servlet to dynamically change file extensions in the html tags dependent on browser compatibility; Should be a relatively simple task given the replace method for strings. Then a friend said you could have Apache do it internally so I gave up. Anyone still intrested in writing or using a servlet lemme know.

    -Ravi
    JavaTHut@mail.com
  • f course, I also think that something like Photoshop's Unsharp Mask filter is a "must have" in Image Processing but apparently the folks creating GIMP don't agree with me, so maybe I'm just offbeat.

    I'm sure I saw something like that on my copy of Gimp (1.1). A quick check reveals that its under Script-Fu -> Alchemy -> Unsharp Mask.

    Having upgraded to Gimp 1.1 I think the move was worth it. Its getting even nicer.

  • And, can PNG with an alpha layer be smaller than a normal GIF? It is 33% bigger...

    Only the lookup table for the palette need be 33% larger. The data for the pixels is still 8 bit (or whatever you choose). For an 8 bit image disregarding compression, this would come out to 256 bytes regardless of the image size. And they probably compress the heck out of the alph channel, since in most cases it is probably one.

  • I keep hearing all this anti-aliased stuff (gnome, png, etc). But I'm not a big graphics person. Does anyone have a good def?


    I'm not sure exactly what they're referring to in this context, but I can tell you what anti-aliasing is in general.


    "Aliasing" refers to artifacts in images that result from the fact that images are made up of pixels. Moire patterns, "staircase" pixel patterns on edges, and the wierd speckles, checkerboards, and what-have-you that can show up when you resample an image count as aliasing.


    "Anti-aliasing" refers to a set of techniques designed to remove aliasing artifacts from images that are being resampled or otherwise displayed in a form other than their original and/or ideal forms. This usually involves smoothing/filtering and blending against whatever background the image is being displayed against.


    What I think it refers to in this context is just using true alpha-blending to smooth jagged edges of things like fonts and icons against a background. You can't do this with transparent .GIFs, so they wind up either looking jagged or else having an ugly coloured fringe if you change the background colour.

  • For great support of PNG, check out Adobe ImageReady. It is a program designed to process images for the web.


    domc
  • GIMP does support the PNG and the alpha channel...but it is sort of very difficult to use. I only succeeded doing it once some time back and I cannot for life of me remember how to do it so I can achieve the transparent feature under GIMP.

    I have lot of great graphics but they are at their best if they are done under PNG rather than GIF or JPEG due to overlapping of graphics on the webpage. But one thing really sucks...the GIMP mailing list is sort of dead and I have not gotten a reply on how to do the transparency effect with GIMP for past day and half. Kind of interesting compared to high volume mailing list that I got used to. :)
  • Anti-aliasing is also used in some graphics programs to change the size of bitmapped images.
  • I'm not familiar with PNG,
    so this may be a stupid question,

    but if the compression is not lossy,
    this may result in big files (does it?)

    I rather have lousy quality then an hour wait to load...


    ---
  • Hmmm....
    Regarding save/edit,
    I won't use png anyway, just xcf (psd for the Proprietary Software Documents)

    And,
    can PNG with an alpha layer be smaller than a normal GIF?
    It is 33% bigger...


    ---
  • I need to write programs that draw a graphics file on the fly. However, I have not been able to find a drawing kit for PNG. Right now, I use the GD library, but I don't want GIF's!

    Is there something similar to GD for GIF's? It doesn't need to have a lot of drawing functions, just the basics, like circle(), line(), 8-bit color, etc. A port of GD would be great.

    Bob

  • With IE 5.0 released today, I'd download it to see the results. Anyone know of some examples?
  • Or more correctly, interpolation. Modern programs, such as Photoshop 5.0, user bi-linear og bi-cubic interpolation for better quality.
    ---
    Ilmari
    Remove the capital letters from the e-mail-address
  • >would like to know others experience, but I thought tiff had a pretty well defined spec

    That's the whole problem. It's so huge, nobody implements it all. The sad fact is that damn few people use TIFF that are not in the desktop publishing field. I have to get a lot of design printed by professional printers and so on, and they always request TIFF. I have no idea why, I never use the bloody thing, BECAUSE it never works from one program to the next. At least for me. I've heard that those pro programs printers use support every type of TIFF you can imagine, but support little if anything else, and that's why they ask for it. I dunno. TIFF sucks, IMO.

  • Perhaps he means 200x200? That's 40,000 pixels, and 200000/40000 = 5 bytes per pixel. That's more reasonable.

    Mike
    --

  • No I think he means 200K. He obviously
    knows the difference between 200 BYTES and
    200 KILOBYTES, since he just responded to
    someone else about it.

    In other words, the old formats for high
    color images were not, shall we say, EFFICIENT.

  • How many people still visit your site in the
    old browsers (2.x, 3.x)?

    Our site has over 19,000 active members, and
    the vast majority are on the 4.x browsers. And
    these aren't computer geeks for the most part.

    hmm
  • I glanced over at your web site and, among other things, noticed the review of Lost In Space.

    Is nobody out there aware that the original TV series was based on a comic book? The orignal comic books were titled Space Family Robinson. I don't think the comics had the robot or Dr. Smith (it's been a long time), but there was the alien pet critter that showed up in the movie but not the TV show.

    But in none of the reviews of the movie have I seen any reference to real origin. Cultural illiteracy, I guess.
  • You may have more knowledge of American cultural history than whatever cretins you work with, but you're certainly humor-deficient. And far too sensitive -- nothing in my original comment was intended as a personal attack. Perhaps hypersensitivity goes with pretentiousness.

    Oh, and as for email addresses, I get plenty of spam as it is, thanks very much. Are you too cowardly to say in public something you wanted to email in private?
  • I miss the image format that Paint in Tandy Personal Deskmate used. 200 pixels, 200K file. Ah, the good ol' days.

    Sigh.

  • No, I mean 200K. We're talking 1984 technology here.
  • Check out JNG. The MNG page mentioned up above points to the draft for it.
  • How about an option in the user preference for PNG images? Or better yet, make PNG the default, and provide an option to disable.
  • And I want frame-animated bitmaps because...?

    Sorry. If I want something that moves, I'm perfectly happy to use less annoying tools than animated GIF. MNG looks promising-ish, but I still don't see a lot of uses for it apart from Yet More Badly Made Banner Ads.
  • Well GNOME seems to make pretty heavy use of .png for a lot of its icons and so forth
  • Possibly, in the bug parade at The Java Developers Connection [javasoft.com] support for PNG in Java has the second highest number of votes (only support for JDK 1.2 on Linux has more).

    I know I have my vote in, I'd love to see PNG as a standard format for graphics in Java!

    Some of the links given for other Java packages that provide support for PNG are:

    http://www.cdrom.com/pub/png/src/j ava-png-0.88.zip [cdrom.com]

    http://www.visualtek.com/PNG/ [visualtek.com]

    http://www.sixlegs.com/png.html [sixlegs.com]



    as well as Activated Intelligence [activated.com] which makes JIMI and can write PNG images - not free though!
  • Not
    Bloody
    Likely

    maybe a byte per pixel, maybe more, but 1024 bytes per pixel? A 200 pixel image (that's less than 15 pixels by 15 pixels) would nearly fill up a typical 80's floppy disk!!


  • Personally, I think PNG is nifty. It's a hell of a lot better than GIF (24bit images, anyone?), and it's non-lossy. I started scanning a large library of family photos in, and I wanted something non-lossy. It also avoids problems with things like TIFF, which seem to have so many variations that a tiff created in one program usually doesn't work in another.

    --


  • Hmm, not that I've experienced. I've always had problems with tiff. I think this is due to poor or incomplete implementations in a lot of programs. I can see how if you're using something pricey like photoshop, it might not have a problem with them.

    Looking through the Paint Shop Pro helpfile, I see there are quite a few kinds of compression:

    TIFF Huffman compressed Aldus Corporation
    TIFF No compression Aldus Corporation
    TIFF Pack bits compressed Aldus Corporation
    TIFF LZW compressed Aldus Corporation
    TIFF Fax Group 3 compressed Aldus Corporation
    TIFF Fax Group 4 compressed Aldus Corporation

    Paint Shop Pro, for one, doesn't handle TIFFs well. TIFFs I've saved with Photoshop always crash PSP.

    Maybe TIFF is a solid, portable format, but implementations don't seem to take advantage of that. Maybe TIFF is more closed or less well documented than PNG. For the record, I've never had a portability problem with PNG.

    --


  • If you take a 24bit color image with a high resolution and save one as PNG with compression and another as lower quality JPG, the JPG will (in most cases) be much smaller.

    But it IS lossy. So you can't iterate through the process of editing/saving without screwing it up. JPG is only really appropriate as the final product to show users with low bandwidth connections.

    However, this is only in regards to images like photos. If you make an 8bit image using PNG, it will probably beat JPG. This is especially true for things like line art and graphics. You don't want to use JPG for stuff like that. The loss in quality will be very noticeable. PNG is good replacement for GIF in that respect (especially considering the patent issues).

    Do basically, PNG replaces GIF nicely in pretty much all cases and JPG in many cases (or all cases if you have the storage space/bandwidth).

    --


  • What part of "pretty much" was unclear?

    Anyway, as far as I'm concerned, GIF animation can be flushed down the crapper. 99.99% of the uses simply annoy and irritate.

    --


  • Not to stick up for 'doze, but I believe anti-aliased fonts can be turned on/off with Display CP->Plus!(!!!). There is an option for "Smooth edges of screen fonts." Might try fiddling with that.

    --


  • Wasn't there an alien pet critter in the TV show? I believe it was basically a monkey with alumninum foil over its ears. I remember them mentioning it on the LOS DVD commentary.

    --


  • That's from PSP 4. We have 5, but they screwed up the UI a bit. A couple of quirks that pop into mind: the save format drop down box lists files alphabatized by some textual description like "Compuserve Graphics Interchange Format (*.gif)" and "Window or OS/2 Bitmap (*.bmp)" instead of the old listings like "GIF - Compuserve...etc." and "BMP - Windows...etc.". The other thing I can think of is how it doesn't default your format to SaveAs to the last format use for saving. Changes like these serve no purpose other than to make it more difficult to use. I'll stick with v4 until it won't work for something I need to do (don't actually need to use tiffs).

    I think pdf would probably take off if there was something like a libpdf. As it is now, Adobe is keeping a pretty tight grip on the specs and forcing you to use their programs.

    --

  • Another good use for PNG that is not strictly web-based is kiosks. When you have control over the client software, and can pick a PNG-supporting browser, you can PNG to your heart's content.

    It's a great format.

  • They aren't very large from what i can see, saving the same 24 bit image as both a jpg at maximum quality(which still results in a noticable loss), and as a png(no loss that i could see) resulted in a huuuge filesize difference, with the png approximately a _quarter_ of the size of the jpg. Now that's good compression :)
  • What you cannot do is any sort of transparency with palette images

    Well, you can now. I have fixed it. Just see the registry.gimp.org!

I have hardly ever known a mathematician who was capable of reasoning. -- Plato

Working...