Slashdot Mirror


Viewers for Large Images?

mateub asks: "Before setting off to write something of our own, we have been looking for an image viewer that can deal with large (e.g. 10k by 10k pixel) CMYK TIFF images. Note that this is not necessarily the same thing as saying that the file is large, but usually it will be. A smart program could allocate enough memory to show the 1k by 1k pixels of a normal monitor and read other parts of the file when the user scrolls. Not fast, but functional. We've tried ImageMagick, and it isn't that smart--it runs out of memory even on my 1GB RAM, 4GB swap workstation. It appears The Gimp and xv can't even handle CMYK. Are there any programs that can display these images?"

8 of 64 comments (clear)

  1. Photoshop and Virtual Memory by Matthias+Wiesmann · · Score: 3, Informative
    As far as I know, photoshop is very good at handling huge images, altough I don't know if it could handle such a monster. Also photoshop does CMYK. One of the main problems when handling very large images is that the default VM policy of the OS is not adapted to handle the graphic data.

    Photoshop does its own VM to handle the memory needed for the image. As far as I remember it needs four times as much disk space than the original picture (this is needed for things like filtering and undo).

    I don't know of a cheaper alternative that would do the trick. If I had to write such an app, I would look into mechanisms to install a custom pager that would handle the image data - using the image file as backing store - this is basically what you describe (loading the parts that are needed), but integrated with the VM mechanism.

    If the app needs some basic functionality like zooming, things are a little more tricky: lets say you want to dispay a 1/10 zoomed out version of the image, then you need to process the whole file to calculate the reduced image. As this is expensive, you would probably want to cache the result.

    This could again be done using a custom pager, that simply clear the memory when the pages are swapped out, and regenerate the needed pages when the memory needs to be swapped in again.

  2. The Intel Image Processing Library supports this by hanjo · · Score: 4, Informative

    If you decide to write the application yourself, and you are using an Intel architecture, then you might consider using the Intel Image Processing Library.

    The library provides a set of low-level image manipulation functions in DLL and static form. A part of the API deals with tiling of big images, so that only the viewable fraction of the image is loaded in the memory. The library comes with a demo app that demonstrates its capabilities including the tiling of images.

  3. Not easy for striped tiff. by Bazzargh · · Score: 3, Informative

    The tiff spec originally used striped chunks of image, ie exactly what you might expect to be dumped directly from the buffer of a fax or scanner. (later they added square tiles, which made it easier to embed jpeg encoded images in tiff). While it is technically possible to encode the whole tiff in a single strip (of compressed image data), thus screwing any attempt at random access, the standard says you shouldnt do this and aims for small strips - in terms of memory.

    This has nothing to do with how large the strips are in pixels though. If you viewer wanted to load a 100 pixel square region and the page width is 1M pixels, you will actually be forced to load at least 100x1M pixels into memory.

    Bottom line is that in general tiff is a poor format for very large images. And while other image formats are different, they, too, are often not designed for random access to areas of a much larger image. If you really have large images then you should consider storing them in a different format, or even creating a client-server viewer so you don't have to install a gig of ram on the desktop of everyone who wants to look at the image. Depends on your app though. For photoshopping, just add more ram, for a db of x-ray images you would probably want to store images in a format designed for random access to small areas by remote client machines, and various thumnail levels for image navigation.

    BTW I deal with A1 scans and I'm pretty sure the (proprietary and fairly crap) image viewer we use takes the client-server approach. I dont speak as an expert in this area but I have written software to convert TIFFs to other formats in the past.

    -Baz

  4. ACDSee image browser and graphics manipulation by SPeW · · Score: 2, Informative
    ACDSee is the image browser of choice when it comes to any kind of image type. It's fast efficient and performs many functions that are an absolute must for anyone who works with images or graphics.

    It supports just about any file type you can think of including video and audio as well as compressed archives and even scans unrecognized files.

    It's available for PC and Mac but the mac version is more limited and slower than the pc counterpart. There's also a slimed down version of the original image viewer that is fast as lightning.

    check it out

    http://www.acdsystems.com

    --
    MoRe... LaTeR... -=PJK=-
    1. Re:ACDSee image browser and graphics manipulation by b_pretender · · Score: 4, Informative
      I remember being very impressed with the size of images that ACDSee can handle. It was my image browser of choice at my old job where the average tiff files were ~35MB and the PGM files were much larger.

      ACDSee does choke, however, if the directory has a few thousand images in it. We were training image recognition algorithms and a typical truth category might have as many as 10,000 images. With this many images in a directory, ACDSee became unuseable because it constantly would update the directory contents, filesizes, filetypes (of a network drive) and wouldn't allow user input until it was finished.

  5. Re:xzgv by sydb · · Score: 5, Informative

    I was going to mod you up, but you could have quoted this:

    Now adapts rendering method for big images. When the number of pixels in the image exceeds the value set by image-bigness-threshold (as set in config file or on command-line, defaulting to 2 million pixels), it's drawn piece-by-piece on demand rather than all-at-once. The all-at-once behaviour is worth keeping around for smaller images, as it gives much nicer scrolling - but for big images it's just impractical, hence this feature.

    Which sounds like just the ticket. You could also have linked to the website.

    Here ends sydb's lesson in karmah whoring.

    --
    Yours Sincerely, Michael.
  6. Re:Photoshop on an Apple by wcb4 · · Score: 3, Informative

    I have a 10000 x 10000 pixel cmyk image open in photoshop right now, as I browse, on a PIII/600 laptop with 192 megs of ram using photoshop 5.5 set to use no more than 70% of available ram.... An image of that size is 381.5 megs.... photoshop really likes to have 3x the picture's size in ram (one for the image, one for working space and one for undo purposes) so if you have a machine with 2 GB of ram and 70% allocated to photoshop, you would be working in real time, as it is, I can successfully manipulate an image that large scrolling around and making edits, even on a laptop.

    As far as the Apple goes..... don't fall into that trap... A P4/2GHz with 2 GHz of Ram and the fastest 2d video card you can manage to get your hands on (lots of companies have not been pushing 2d performance lately, but there are some good ones out there, I have always liked ATIs cards for 2d performance/price ratio.

    resolution (72 vs 300 dpi) is a non concern, a 10000 x 10000 pixel image is still the same file size regardless of resolution, the physical size can will be radically different dependant on the resolution in ppi, 300 being about 33x33 inches, and 72 being a little over 4 times that in each dimension, but its the file size/memory requirement that you need to deal with not physical size.

    Sometimes Open Source is great, sometimes, there just is no substitute for the commercial offerings. I love GIMP, its a fantastic program, for what it does, but photoshop has been refined over a lot fo years into what it is, and for professional image manipulation, nothing can touch it (especially in the CMYK arena)

    Lest anyone think I am just talking out of my ass, I spent 12 years working in printing, 9 of them doing desktop publishing/photo reoutching/typesetting and illustration work for commercial printers. My opinion? a nice P4/2+GHz or Athlon 2000+XP or better yet a dual setup if you can afford it, 2 GB Ram, a nice fast 2d video card and photoshop any version 5 or better (though my favorite is still 6.0)

    --
    I reject your reality ... and substitute my own.
  7. Irfanview by orty.com · · Score: 2, Informative

    If you're on a Wintel platform, Irfanview (www.irfanview.com) is a great freeware tool that can open damn near any format of image (some that other viewers can't) and is a small download. I've opened some pretty dang big images in there (a 42 meg jpeg that was ungodly huge), and it loaded fine (and it can open cmyk images and do basic manipulation, resizing, color adjusting, etc...). I've been using the program since version 1.2 and love it (it's at 3.61) and recommend it to anybody that needs a simple graphic viewer (it's a helluva lot faster than ACDSee).

    --
    Ignoranus: A person who is both stupid and an asshole.