30 void oledc_bitmap(
char *imgdir,
int x,
int y)
32 while(oledc_screenLock());
33 oledc_screenLockSet();
38 FILE* fp = fopen(imgdir,
"r");
40 fread(imgdat, 1, 30, fp);
42 int img_width = imgdat[18];
43 int img_height = imgdat[22];
44 if(img_width > 149 || img_height > 149)
return;
45 int img_offset = imgdat[10];
46 fread(imgdat, 1, img_offset - 30, fp);
53 fread(imgdat, 1, img_width * 2, fp);
54 int y0 = y + img_height - 1 - k;
55 if(y0 >= 0 && y0 < TFTHEIGHT)
58 while(j < img_width * 2)
60 while(j/2 +
x < 0) j+= 2;
61 oledc_goTo(j/2 +
x, y0);
62 while(j/2 +
x < TFTWIDTH)
64 oledc_writeCommand(imgdat[j], 1);
65 oledc_writeCommand(imgdat[j-1], 1);
67 if(j > img_width*2)
break;
78 for(
int k = 0; k < img_height; k++)
80 fread(imgdat, 1, img_width * 2, fp);
81 int x0 = TFTWIDTH - y - img_height + k + 1;
82 if(x0 >= 0 && x0 < TFTWIDTH)
84 for(
int j = 1; j < img_width; j++)
87 if(y0 >=0 && y0 < TFTHEIGHT)
90 oledc_writeCommand(imgdat[j*2-1], 1);
91 oledc_writeCommand(imgdat[j*2], 1);
102 x = TFTWIDTH - img_width -
x;
103 while(k < img_height)
105 fread(imgdat, 1, img_width * 2, fp);
106 int y0 = TFTHEIGHT - y - img_height + 1 + k;
107 if(y0 >= 0 && y0 < TFTHEIGHT)
110 while(j < img_width * 2)
112 while(j/2 +
x < 0) j+= 2;
113 oledc_goTo(j/2 +
x, y0);
114 while(j/2 +
x < TFTWIDTH)
116 int p = img_width*2 - j;
117 oledc_writeCommand(imgdat[p], 1);
118 oledc_writeCommand(imgdat[p-1], 1);
120 if(j > img_width*2)
break;
131 for(
int k = 0; k < img_height; k++)
133 fread(imgdat, 1, img_width * 2, fp);
134 int x0 = y + img_height - k - 1;
135 if(x0 >= 0 && x0 < TFTWIDTH)
137 for(
int j = 1; j < img_width; j++)
139 int y0 = TFTHEIGHT - 1 -
x - j;
140 if(y0 >=0 && y0 < TFTHEIGHT)
143 oledc_writeCommand(imgdat[j*2-1], 1);
144 oledc_writeCommand(imgdat[j*2], 1);
154 oledc_screenLockClr();