A client-side image transcoding library.
Switch branches/tags
Nothing to show
Clone or download
chadaustin and facebook-github-bot nullptr -> folly::none
Summary: In preparation for D12843022 (and someday std::optional), it is illegal to initialize an optional with nullptr. So change the arstudio memory code to use folly::none (and introduce a memory::null to make it easier to transition to a new backing implementation).

Differential Revision: D13362293

fbshipit-source-id: ffe996b32f7940914ed6c9562d21613668979107
Latest commit 4f516b6 Dec 13, 2018




Spectrum is a cross-platform image transcoding library that can easily be integrated into an Android or iOS project to efficiently perform common image operations.

The Spectrum APIs incorporate declarative traits. This simplifies the usage for the developer by focusing on the desired outcome. At the same time it enables Spectrum to transparently choose the best execution sequence. Additionally, Spectrum makes common image operations simple by surfacing many difficult operations that are not typically exposed by platform frameworks. For example, some JPEG-to-JPEG operations like cropping are executed lossless, and disabling chroma sub-sampling when saving graphical JPEGs will lead to better quality final products.

Find out more at our website.


Spectrum was built with mobile iOS and Android in mind but could be wrapped for any platform.

Getting started

Please refer to our Getting Started chapters in our documentation to start using Spectrum to transcode your images on Android and iOS.

Join the Spectrum community

Please use our issues page to let us know of any problems.

For pull requests, please see the CONTRIBUTING file for information on how to help out.


Spectrum is MIT-licensed.