- Add JpegToBmpConverter::getJpegDimensions() to extract JPEG dimensions - Fix getCoverBmpPath() ternary operator precedence bug - Pre-calculate exact dimensions per mode: * FIT: width=480px, height=(480*jpegHeight)/jpegWidth * CROP: height=800px, width=(800*jpegWidth)/jpegHeight - Generate separate cache files (cover_fit.bmp vs cover_crop.bmp) - Eliminates runtime scaling artifacts, improves sleep screen clarity
22 lines
1.0 KiB
C++
22 lines
1.0 KiB
C++
#pragma once
|
|
|
|
class FsFile;
|
|
class Print;
|
|
class ZipFile;
|
|
|
|
class JpegToBmpConverter {
|
|
static unsigned char jpegReadCallback(unsigned char* pBuf, unsigned char buf_size,
|
|
unsigned char* pBytes_actually_read, void* pCallback_data);
|
|
static bool jpegFileToBmpStreamInternal(class FsFile& jpegFile, Print& bmpOut, int targetWidth, int targetHeight,
|
|
bool oneBit);
|
|
|
|
public:
|
|
static bool jpegFileToBmpStream(FsFile& jpegFile, Print& bmpOut);
|
|
// Convert with custom target size (for thumbnails)
|
|
static bool jpegFileToBmpStreamWithSize(FsFile& jpegFile, Print& bmpOut, int targetMaxWidth, int targetMaxHeight);
|
|
// Convert to 1-bit BMP (black and white only, no grays) for fast home screen rendering
|
|
static bool jpegFileTo1BitBmpStreamWithSize(FsFile& jpegFile, Print& bmpOut, int targetMaxWidth, int targetMaxHeight);
|
|
// Get JPEG dimensions without full conversion
|
|
static bool getJpegDimensions(FsFile& jpegFile, int& width, int& height);
|
|
};
|