Hi, Chris!

Thanks for the response, I really appreciate it. We were just about to experiment with changing that "L"  to "RGB" on our test server.  What you're suggesting sounds fantastic--I was concerned about the potential performance impact of sending everything (even the stuff for which "L" is accurate) through under RGB mode. We have a mix of grayscale/color content in the same instance of Chronam.

We'd definitely be willing to help test this, if you think it's a change others could benefit from--we'd apply your changes as a patch.

Thanks again--

Stephanie

--
Stephanie Williams
Digital Projects Programmer
[log in to unmask] | 919-962-4836
North Carolina Digital Heritage Center | digitalnc.org | @ncdhc

From: Data, API, website, and code of the Chronicling America website [[log in to unmask]] on behalf of Chris Adams [[log in to unmask]]
Sent: Wednesday, June 24, 2015 2:10 PM
To: [log in to unmask]
Subject: Re: Color Images in Chronam?

On Jun 23, 2015, at 12:14 PM, Williams, Stephanie <[log in to unmask]> wrote:
Thanks to Mike, I knew this was likely something to do with our JP2 library; I'm now pretty sure I've traced it back to a hard-coded frombuffer() setting--"L", for grayscale--in the NativeImaging module that Chronam uses to optimize image generation/broker image libraries.  I'm wary of the consequences of changing that, and will be investigating further.

Ah, this spot:

https://github.com/acdha/NativeImaging/blob/bad7425766bf1a4fd28452caf0afde9ab28d7a9d/NativeImaging/backends/aware.py#L220
https://github.com/acdha/NativeImaging/blob/bad7425766bf1a4fd28452caf0afde9ab28d7a9d/NativeImaging/backends/aware_cext.py#L105

That code was developed to support Chronicling America which at the time didnít have color content. It shouldnít be too invasive to do something like use the number of channels and bits-per-pixel values to select the mode from the list at http://pillow.readthedocs.org/en/latest/handbook/concepts.html#concept-modes. Unfortunately I donít easily have access to Aware to test this but if someone else does I can merge the change and push it out to PyPI quickly.

Chris