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

 



Forgot your password?
typodupeerror
×
The Internet

Vector Graphics On The Web? 18

Rob asks: "Bitmaps take up valuable bandwidth and are displayed at different sizes depending on your screen resolution, but Flash animations are big and clunky. Will the increasing take-up of alternative means of browsing (PDAs, mobile phones, TVs, ...) with corresponding variations in screen display and connection speed lead to the emergence of a compact, widely used standard for vector graphics? What are the obstacles which need to be overcome? What vector formats are already in use on the Web?"
This discussion has been archived. No new comments can be posted.

Vector Graphics on the Web?

Comments Filter:
  • by Trongy ( 64652 ) on Tuesday August 08, 2000 @09:37PM (#868772)
    The world wide web consortium (w3c) has anointed
    the xml basd svg (scalable vector graphics) format.

    http://www.w3.org/Graphics/SVG/Overview.htm8

    Adobe are supporting SVG.
    They have a browser plugin to view svg graphics for windows and mac. (Mozilla also supports svg)
    Adobe's drawing products have svg output.

    http://www.adobe.com/svg/

    Some other links:
    http://www.blackdirt.com/graphics/svg/

    http://sis.cmis.csiro.au/svg/index.html
  • Well, I'm really showing my age by saying this, but I worked on Network Graphics Protocol on the APRAnet in the early 1970s, with the results of my work and the work of others published as RFC 493 in 1974. Originally, NGP (as it was known in 1972) worked only with line segments; text and bitmaps were added after I had left the project.

    The basics are simple: the drawing field is 65536 by 65536 virtual pixels, with the coordinates interpreted as an integral fraction (or scaled integer, if you prefer).

    The RFC is not available online, but I have a copy as printed in the 1985 DDN Protocol Handbook.

    Here is an interesting quote from RFC493: "When reason decends on the world, the TELNET negotiation mechanism (see NIC 15372) will be used to establish the willingness to transmit graphics information (DO, DONT, WILL, WONT, GRAPHICS) and a subnegotiation transmission will transmit the socket number [of the independent graphics connection]. In the case of an intelligent graphics terminal attached to a TIP [terminal interface processor], the TIP TELNET responds to the negotiation and establishes the connections."

    Some additional details: there is a Z-axis, or intensity, specification in the primatives. The Microsoft Windows concept of different co-ordinate systems may well have had its roots in this 30-year-old protocol, because NGP has one system for vectors, another system for text, and a third system for areas.

    The protocol also allowed for input devices. You know this predates mice from this quote: "The state of a coordinate device is a pair of coordinates in the screen coordinate system. These coordinates could be derived from a tablet and stylus, from a light pen, from two knobs [emphasis added], from a keyboard (by typing in values, or using a keyboard-propelled cursor) or whatever." The invention of the mouse was to take the "two knobs" and put them in a housing that could be moved by the hand.

    If you are interested in reading this old, old RFC, I could be talked into scanning the RFC from the printed copy and posting it on my web site. It's a government publication.

  • ... lead to the emergence of a compact, widely used standard for vector graphics? ... What vector formats are already in use on the Web?

    Well, there is the W3C standard [w3.org], mentioned in a Slashdot article from Saturday. [slashdot.org]

    Louis Wu

    "Where do you want to go ...

  • Cool. Scan it and put it up somewhere. It shouldn't be lost. Was there ever an implementation? The bit about the mouse isn't that correct as it was shown in what, 1967?. Is it older than that? (Not knowing about it is okay, I'm not criticising that at all, lots of people, including me mostly, don't know a lot about many things). You're right about its logical model anyway. It's the "whatever" that's important, there's some kind of input, has to be, let's go on...

    By "line segments" do you mean simple straight lines? Any more complex curve support? Fills? (should wait for the scan I guess).

    And one last thing, the old Tektronix vector terminals had a stream protocol too. Just over a serial line (probably HPIB as well, can't recall and the ones I used only had a serial i/f). But they're a bit more recent than this.

  • Please note that the W3C does not publish standards, it publishes recommendations.

    This is a common and easy misunderstanding to make.
  • Flash (by which I take it you mean the .SWF file format rather than the authoring tool) isn't necessarily 'big and clunky': the original format (packed bitfields within objects, objects byte-aligned within the file) is, in many ways, pretty well thought out: it's a nice balance between compactness of representation and speed of rendering, although its use of quadratic Beziers makes it a bit of a pig to draw circles, arcs etc and its text handling, by being user-agent-neutral, requires the programmer to jump through hoops, and it's got several advantages: most importantly it's an open format, it's widely supported and it's broadly standardised. It may not have the imprimatur of the W3C, but it's useful.

    What tends to make it big and clunky is the habit designers have of embedding bitmap images into the .SWF either intentionally or unknowingly: the worst offender in this regard is Adobe's 'Flash-killer', LiveMotion which does some really evil things to generate .SWFs - from what I've been able to extract from LiveMotion-generated .SWFs, it seems to flatten all the layers it uses internally into a single bitmap and then stick it into the .SWF as is which is, unsuprisingly, somewhat inefficient.
    --
    Cheers

  • There is the old NAPLPS [ucl.co.jp] (ANSI X3.110) (derived from Telidon PLP) standard [ora.com]. It supports many character sets, bitmapped and vector graphics. It uses a coordinate system where the coordinates are sent most significant to least, and a device can stop looking at the coordinates when the resolution becomes smaller than the display resolution. The coordinate system allows images of higher detail than a glossy magazine page.

    It was most popular in the classic Progidy interface, as it allowed them to create graphics despite the old slow modems. Of course, it is easier to create cartoons with vector graphics than it is to create detailed images -- but that's an implementation issue.

  • You might want to look at RFC 965 [faqs.org] "A Format for a Graphical Communication Protocol"
    The main goal of this paper is to lay the groundwork for the development of a vector graphics format to be used as a basis for an on-line graphical communication protocol. We call such a format an "interactive graphical communication format," or IGCF. In this section we describe some operational requirements and usable characteristics for an IGCF.
  • by Anonymous Coward
    Check out the new Xara X's .xar and .web formats. Xara X produces very compact and dazzling vector graphics for the web.

    http://www.xara.com [xara.com]
  • Vector graphics are great for producing scalable "cartoon-like" images, but what about photos? I thought I read once that fractal compression of an image allowed it to be reproduced at arbitrary scales (with an upper limit of its original resolution, of course.) I wonder if wavelet compression has a similar property. Does anyone know?

    Incidentally, I think Kodak was once promoting an image file format/server software combo that would provide several levels of resolution, depending on what the client asked for. AFAIK, it didn't take off.

  • Lessee: vectors, scalable, hinting for handling scaling artifacts, cross-platform, well-defined, widely availiable...

    Hmm - if one is willing to turn one's vectors into glyphs then this could be a great format. Create "myvectorimages1thru128.ttf", specify the font and appropriate glyph at the desired size in your code and instant embedded vector image. The only problem is that there's no reliable way (that I know of) of getting a font to a browser.

    -- Michael

  • You mention these vector terminals... what ever happened to the idea? Does software which uses this protocol still exist (on the server side)? What software emulators are available? Did this protocol include an event model (notify server that mouse was clicked on this primitive or these
    coordinates)?
  • For multiresolution image viewers, check out the turing archive:

    http://www.turingarchive.org/

    It's got a little GPL java client/server for image viewing (which I did part of).
  • Very good defence of Flash.

    Flash "movies" do not HAVE to be big and clunky, they just usually are. Flash is a lot of rope with which the FrontPage/GoLive crowd out there hangs itself. But it doesn't have to be that way.

    Used judiciously, it is the fairly light weight vector format for which you are looking.
  • It's times like these that I wish that Java's graphics performance was more reasonable. With a decent vector library, Java would be quite kick ass, and just about every user already has Java capability. (I remember the despair at the fact that no user had even heard of PNG, let alone downloaded a plugin for this extremely worthy bitmap format).

    Anyway, my point is that transporting some kind of graphics manipulation code as Java bytecode might be easy IN SOME CASES, and a hell of a lot less frustrating than waiting for the major browser vendors to implement support for SVG. There's always more than one way to do it ;-)

    --

  • I think the Kodak format you refer to is FlashPix, an implementation of the 'IIP' or Internet Imaging Protocol.

    Basically, a large, high-res image is split up into 'tiles' - recursively subdivided, if you like. The tiles are also rendered at various resolutions, and all packed into the same file for storage (this tiling/resampling can of course be done on the fly)

    This means a client with a fixed-sized viewport can request a rectangular region of the image, and a server (or file loader) can return the appropriate set of tiles.

    Basically the idea is that you should never have to send more information across the wire (either internet, the PCI bus, whatever) than the clients viewport can display - i.e. if youure viewing a 10,000 x 10,000 pixel image with a 400 x 300 window, its pretty pointless to send the entire image down the wire, since its going to consume enormous bandwidth and memory on the client.

    Instead, you give the client zoom and pan controls, and stream down the appropriate tiles as the client requests them.

    This works really well, and there was a product from LivePicture (the LivepPicture image server) - i think LivePicture have gone out of business since, but it was a sound technology.

    Wavelet compression on photographs does work - i belive JPEG-2000 uses wavelet compression or something similar to it to achieve better quality at the same size reduction as JPEG.

    IT doesn't offer, in the general case, an enormous improvemnt over existing techniques, but in some instances, wavelets offer dramatic advantages. Motion Video codecs are starting to use wavelets, and i think this is where they will really shine.

  • The Computer Graphics Metafile (CGM) was birthed in the eighties as a universal vector and bitmap file format. It is an ISO standard. Even MSOffice can import it. There's even a movement [cgmopen.org] to make it more popular, and to apply it to web graphics.
  • I just searched here, and it seems this little plugin got no attention at all from /. yet.

    First, the home page [alice.org] and a little description:

    • Alice is primarily a scripting and prototyping environment for 3D object behavior, not a 3D modeler
    • Alice has been used for a myriad of applications, including interactive games, animations, training simulators, 3D animated technical diagrams, and virtual reality environments using head-mounted display devices. Have you seen or played the "Light Saber Game" yet?

    One last thing: the server was incredibly slow for me, a little patience might help. Here's the google copy [google.com] just in case.

    PS: this plugin runs on top of Python.

The key elements in human thinking are not numbers but labels of fuzzy sets. -- L. Zadeh

Working...