Image Resize Bug in Microsoft Photo Editor

28 Sept. 1999

There is a serious bug with Microsoft Photo Editor 3.0 if you try to use Image Resize to zoom (resize) a picture down to a smaller size. For example, if we start with the following picture:

original image

and resize it to 90% of its original size using Microsoft Photo Editor 3.0, we get:

Left: smooth off. Right: smooth on.

Note the objectionable horizontal and vertical discontinuities introduced into the picture! Image Resize has a smooth option whose name suggests that it would help, but clearly it doesn't improve things much. And the problem isn't limited to 90% resize, but is noticeable for most smaller sizes. The program is probably doing point sampling (nearest neighbor resampling) rather than proper filtering.

For reference, here is what a properly zoomed-down version of the picture looks like, computed using the (default) bicubic resampling option with Adobe Photoshop 4.0:

This is much better, showing no discontinuities. All pictures above are shown with 2x2 pixel replication to show the pixels more clearly. These problems are still easily visible when pixels are not replicated, however.

Photo Editor seems to do an acceptable job of zooming pictures up (resizing to a larger size). In that case the smooth option is effective (I would guess that it's doing bilinear interpolation).

This bug in Photo Editor is intolerable and inexcusable! A bug such as this that damages people's images is a disservice to users. It is made more egregious by the widespread availability of this software. Methods for zooming down images with good filtering have been known for decades, and source code to do fast, high quality image zooming is publically available. My code for this has been on the Internet for 10 years, for example.

Why do I care about this issue? Because I was co-teaching a course related to image processing and students were unwittingly damaging their images by using this buggy Microsoft software!

Please join me in lobbying Microsoft to fix this bug immediately. They should change Photo Editor so one can shrink a picture without introducing serious flaws into it. Anyone wishing to discuss this bug, let's use the news group . Until Microsoft fixes this bug, I suggest you use Adobe Photoshop, QuickTime's PictureViewer, or some other high quality image processing software. See for a list of other candidates.

Update, 10 Sept. 2001: Two years after informing Microsoft of the above bug, MPE version 3.01, shipped with Microsoft 2000, still has the bug.

Comparing Jasc Paint Shop Pro

29 Nov. 2001

Jasc Paint Shop Pro (version 7.02), a similar program for PC's, is much better at resizing. It still has some gotchas if you choose the wrong "resize type", however.

(note that the following pictures have not been pixel-doubled, as the above have)

It does a good job on 90% reduction of the shadows-on-the-wall picture, yielding:

Left: bilinear resample (or smart size) - good job. Right: cubic resample - also good, but maybe a bit too sharp.

But you can get poor results if you choose the wrong resize type when shrinking pictures with a lot of high frequency detail:

1 (leftmost): original, 338 pixels high (a scan of a halftoned image).
2: resized to 100 pixels high with Jasc Paint Shop Pro (JPSP), bilinear resample (or smart size).
3: resized with JPSP, bicubic resample.
4: resized with JPSP, pixel resize.
5: resized to 100 pixels high with my "zoom" program (Catmull-Rom filter).

Image 2 shows that their default mode, "smart size", does the right thing. Presumably smart size is equivalent to "bilinear resample" when decimating (zooming down) and to "bicubic resample" when interpolating (zooming up). Image 3 shows bad aliasing in bicubic mode that suggests that Paint Shop is not doing the appropriate low pass filtering for decimation. Their documentation suggests that "bicubic resample" is a reconstruction filter (good for zooming up only). Image 4 is presumably point sampling, and also shows the aliasing, as we'd expect. Image 5 is good. You need to be careful if you ever use "bicubic resample", because JPSP saves the resize type between runs of the program (thereby lessening the value of the default).

The moral of the story is to choose your default modes carefully. Jasc did; Microsoft did not.

Paul Heckbert, Associate Professor, Computer Science Department, Carnegie Mellon University, Pittsburgh, PA, USA