Index: apps/recorder/bmp.c
===================================================================
--- apps/recorder/bmp.c (revision 21072)
+++ apps/recorder/bmp.c (working copy)
@@ -460,6 +460,7 @@
int read_width;
int depth, numcolors, compression, totalsize;
int ret;
+ bool return_size = format & FORMAT_RETURN_SIZE;

unsigned char *bitmap = bm->data;
struct uint8_rgb palette[256];
@@ -595,6 +596,13 @@
else
totalsize = BM_SIZE(bm->width,bm->height,format,remote);

+ if(return_size)
+ {
+ if(resize)
+ totalsize += BM_SCALED_SIZE(bm->width, 0, 0, 0);
+ return totalsize;
+ }
+
/* Check if this fits the buffer */
if (totalsize > maxsize) {
DEBUGF("read_bmp_fd: Bitmap too large for buffer: "
Index: firmware/export/lcd.h
===================================================================
--- firmware/export/lcd.h (revision 21072)
+++ firmware/export/lcd.h (working copy)
@@ -388,6 +388,7 @@
#define FORMAT_REMOTE 0x10000000
#define FORMAT_RESIZE 0x08000000
#define FORMAT_KEEP_ASPECT 0x04000000
+#define FORMAT_RETURN_SIZE 0x02000000

#define TRANSPARENT_COLOR LCD_RGBPACK(255,0,255)
#define REPLACEWITHFG_COLOR LCD_RGBPACK(0,255,255)