mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-07 08:07:40 +03:00
Fine-tuned simple quantization to better match the values of display.
This commit is contained in:
parent
79e9c6dcc8
commit
6ac920854a
@ -34,7 +34,19 @@ static inline uint8_t boostBrightness(int gray, uint8_t boost) {
|
||||
return gray;
|
||||
}
|
||||
// Simple quantization without dithering - just divide into 4 levels
|
||||
static inline uint8_t quantizeSimple(int gray) { return static_cast<uint8_t>(gray >> 6); }
|
||||
static inline uint8_t quantizeSimple(int gray) {
|
||||
// return static_cast<uint8_t>(gray >> 6);
|
||||
|
||||
if (gray < 50) {
|
||||
return 0;
|
||||
} else if (gray < 70) {
|
||||
return 1;
|
||||
} else if (gray < 140) {
|
||||
return 2;
|
||||
} else {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
// Hash-based noise dithering - survives downsampling without moiré artifacts
|
||||
static inline uint8_t quantizeNoise(int gray, int x, int y) {
|
||||
@ -279,7 +291,6 @@ BmpReaderError Bitmap::readNextRow(uint8_t* data, uint8_t* rowBuffer) const {
|
||||
false);
|
||||
} else {
|
||||
// Simple quantization or noise dithering
|
||||
|
||||
color = quantize(boostBrightness(lum, brightnessBoost), currentX, prevRowY);
|
||||
}
|
||||
currentOutByte |= (color << bitShift);
|
||||
|
||||
@ -101,7 +101,7 @@ void SleepActivity::renderCustomSleepScreen() const {
|
||||
// render a custom sleep screen instead of the default.
|
||||
FsFile file;
|
||||
if (SdMan.openFileForRead("SLP", "/sleep.bmp", file)) {
|
||||
Bitmap bitmap(file, true, 0);
|
||||
Bitmap bitmap(file, true);
|
||||
if (bitmap.parseHeaders() == BmpReaderError::Ok) {
|
||||
Serial.printf("[%lu] [SLP] Loading: /sleep.bmp\n", millis());
|
||||
renderBitmapSleepScreen(bitmap);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user