Article View: comp.windows.ms
Article #11080Re: How do I get large BMPs as desktops?
From: Bruce Wright
Date: Sun, 21 Apr 1991 18:38
Date: Sun, 21 Apr 1991 18:38
84 lines
5118 bytes
5118 bytes
In article <1991Apr13.125238.17769@uniwa.uwa.oz>, andreww@uniwa.uwa.oz (Andrew John Williams) writes:
>
> Hi- I have been converting gifs to .BMP files to use as wallpaper,
> hoping to have a large (1024x768x256c) file as a backdrop.
> Unfortunately, Windows seems to crash if I try to install a file larger
> than around 260k or so as a wallpaper. (257894 bytes workes, 262000
> doesnt). At first I thought it was the type of file, but it definitely
> seems to be the size. (I was trying OS2 .BMPs, and Windows compressed
> and uncompressed formats, to see which gave the smallest file size. Why
> did microsoft support an image compression standard so much worse than
> GIF???????).
I can't add much to what's already been said about your specific
problem, but I can understand why Microsoft didn't support GIFs
in Windows.
The GIF format is computationally inefficient - it is designed to
be _small_, not _fast_. It's the classic tradeoff of time vs space.
The idea of the GIF format was to reduce modem time for sending files
over a phone line, and to reduce disk space at both ends - not to be
a fast display format.
In a GUI environment, you don't want things to be slow - GUIs tend
to slow things down enough already. So you certainly don't want the
_default_ compression format to be GIF - if you have any compression
format at all you want it real simple and _fast_.
Now why Microsoft didn't make GIF as an _option_ is another question;
perhaps they thought that the reduction in speed would give people
a bad impression of Windows when they used GIFs as wallpaper, etc.
There are also some technical problems: I have done a fair amount of
tinkering with low-level code to interpret GIF formats on various
sorts of hardware, and the format introduces some problems for a GUI
environment, of which the following list is a sample:
1) The GIF format does not have an easy way to find "scan line
n" in an image without reading through the entire image until
you find the beginning of that line - in other words, there's
no way to index to a position, or to jump into the middle and
find the proper reading frame and find the beginning of the
desired line. Even if you find the proper reading frame you
still have no way to know what line number you're looking at
without having interpreted the entire image preceeding it.
2) Interpreting GIF format is somewhat tricky; many programs
out there for doing this don't really do it properly (they
may work with many GIF images but choke for some of them).
You'd either have to build this code into every display and
printer driver (imagine the possibilities for incompatible
implementations given the plethora of problems with different
GIF viewers that are out there), or you'd have to have the
code to crack the GIF format embedded in Windows itself and
feed a real BMP type structure to the device driver. This
could be done in pieces so that you didn't have to make a
copy of the entire GIF (which would sorta negate the purpose
of having a GIF format), but because of problem #1 and the
general efficiency hit of dealing with GIFs in the first
place it wouldn't be very nice.
3) Many GIFs have more than 16 colors, which is all that Windows
supports for many purposes anyway - programs that want to use
more must do quite a bit of palette manipulation. Putting
a 256-color .GIF as background would require a 256 color VGA
driver (obviously), but it would also make it either impossible
or ugly for another app to manipulate the 256-color palette
for its own purposes (remember that the palette is a system-
wide resource). Many pictures with 16 colors or fewer don't
take that much different space using GIF or a compressed BMP
format (yes, I know there are pathological cases, especially
with some huge files), so that the incentive to use GIF for
these simpler pictures isn't as big as it is for the more
complex pictures.
I suspect it's one of those things that would be sort of nice to have,
but that you'd hardly ever use because of the penalties in performance
and palette use that you'd have to live with. Maybe Microsoft will
put it in, but (IMHO) it's sort of a marginal feature. It might be more
useful for them to make it easier to generate the compressed forms of
BMPs using the standard user-level software distributed with Windows,
and maybe distribute a GIF <-> compressed BMP converter so that anyone
who doesn't know about any of the PD/shareware converters out there
can still convert images.
Bruce C. Wright
Technical Details
Message-ID:
<1991Apr21.183828.9406@rti.rti.org>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!emory!gatech!mcnc!rti!bcwReferences:
<1991Apr13.125238.17769@uniwa.uwa.oz>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!emory!gatech!mcnc!rti!bcw From: bcw@rti.rti.org (Bruce Wright) Newsgroups: comp.windows.ms Subject: Re: How do I get large BMPs as desktops? Summary: BMPs and GIFs Keywords: BMP desktop Message-ID: <1991Apr21.183828.9406@rti.rti.org> Date: 21 Apr 91 18:38:28 GMT References: <1991Apr13.125238.17769@uniwa.uwa.oz> Organization: Research Triangle Institute, RTP, NC Lines: 84