Happy Holiday Panoramas

DNP's DS620 and DS820 (and Citizen's CX-02/CX-02W) printers have a cool feature where they can create a large panorama print by stitching together up to three smaller ones. This can take the form of discrete panels with a white border between them, or better yet, blend adjacent panels into each other to produce a truly seamless continuous print.

In principle this overlapping/blending is straightforward, but getting it right can be pretty tricky, to the point where DNP only exposed this functionality in a proprietary library/SDK (and their HotFolder utility) instead of their normal driver packages.

After a several year hiatus from hacking on DNP printers, I'm happy to say that I've independently implemented this continuous panorama functionality, and it shows up as just another print size in a print dialog, operating at the post-color-correction YMC layer.


The DS620 with a 6x24 discrete panel panorama, and an 6x20 continuous panorama, from a sunset photo I took over the Indian River over twenty years ago.


It took a lot of prints to get it right! 89 6x8" panels were expended before I finally figured out how to work around a printer firmware bug that kept glitching the edge of each print.

Once the DS620 was working reliably, I turned my attention to its larger sibling, the DS820, which can generate a seamless panorama of up to 8x32" (and up to 8x36" unblended)

I only used up about 15 prints worth of media, most of which was wasted before I figured out that the DS820 bizarrely doesn't support panoramas with A4 media.


An 8x18" print of a stitched photo I took of the (now-former) Aricibo radio telescope in Puerto Rico, along with an 8x32" print of about a quarter of a full 360 degree sunset skyscape I took out at Wallaby Ranch about a year ago, with the 6x24" DS620 print off to the side for comparison.

While the DNP models are confirmed working, the Citizen CX-02 and CX-02S might need some additional tweaking, as they do differ slightly from their DNP siblings and I don't have access to those.

All of the panorama code is is now committed into Gutenprint. Aside from eating up my most of my free time for about a week, getting this development exercise consumed about $75 worth of media -- 92 6x8" prints, 9 A4 prints, and 5 8x12" prints. Suffice it to say, if you find this functionality useful, donations to the cause are appreciated!

The nice thing about the way this is implemented is that the panel splitting and blending code (and data tables) should be trivially adaptable to other printer models, such as Mitsubishi's CP-D90DW and Kodak's 8810, 6900, and 6950. Unfortunately, this sort of effort requires a lot of hands-on time with these printer models (along with media) and that's not likely to happen anytime soon.

Happy printing, folks!