Files
klubhaus-doorbell/libraries/FastLED/src/fl/downscale.h
2026-02-12 00:45:31 -08:00

34 lines
1021 B
C++

#pragma once
/*
Experimental bilinearn downscaling algorithm. Not tested yet and completely
"vibe-coded" by ai.
If you use this and find an issue then please report it.
*/
#include "fl/int.h"
#include "crgb.h"
namespace fl {
class XYMap;
void downscale(const CRGB *src, const XYMap &srcXY, CRGB *dst,
const XYMap &dstXY);
// Optimized versions for downscaling by 50%. This is here for testing purposes
// mostly. You should prefer to use downscale(...) instead of calling these
// functions. It's important to note that downscale(...) will invoke
// downscaleHalf(...) automatically when the source and destination are half the
// size of each other.
void downscaleHalf(const CRGB *src, fl::u16 srcWidth, fl::u16 srcHeight,
CRGB *dst);
void downscaleHalf(const CRGB *src, const XYMap &srcXY, CRGB *dst,
const XYMap &dstXY);
void downscaleArbitrary(const CRGB *src, const XYMap &srcXY, CRGB *dst,
const XYMap &dstXY);
} // namespace fl