int turn2(char *filename, char*filename1, fb_info fb_inf) { fb_info jpeg_inf; fb_info jpeg_inf1; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t *buf241 = decode_jpeg(filename1, &jpeg_inf1); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u8_t * scale_buf1 = scale24(buf241, fb_inf, jpeg_inf1); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); u32_t *buf321 = rgb24to32(scale_buf1, fb_inf); int i, j, h, w, new_h, new_w, m, n; new_h = fb_inf.h; n = m = 0; while(new_h>0) { for(j = 0; j < new_h; j++) { new_w = fb_inf.w -m + m*(n++)/new_h; h = j*fb_inf.h/new_h; for(i = 0; i < new_w; i++) { w = i*fb_inf.w/new_w; if(i + (fb_inf.w - new_w)/2 > 0 && i + (fb_inf.w - new_w)/2 < fb_inf.w && j + fb_inf.h - new_h > 0&& j + fb_inf.h - new_h < fb_inf.h) fb_pixel(fb_inf, i + (fb_inf.w - new_w)/2, j + fb_inf.h - new_h, buf32[h*fb_inf.w + w]); } } n = 0; for(j = 0; j < new_h; j++) { new_w = fb_inf.w -m + m*(n++)/new_h; for(i = 0; i < fb_inf.w; i++ ) if(i < (fb_inf.w - new_w)/2 || i > new_w + (fb_inf.w - new_w)/2 ) if(i > 0 && i < fb_inf.w && j + (fb_inf.h - new_h)/2 > 0 && j + (fb_inf.h - new_h) < fb_inf.h) fb_pixel(fb_inf, i, j + (fb_inf.h - new_h), buf321[(j + (fb_inf.h - new_h))*fb_inf.w + i]); } for(j = 0; j < fb_inf.h - new_h; j++) for(i = 0; i < fb_inf.w; i++) fb_pixel(fb_inf, i, j, buf321[j*fb_inf.w + i]); m += 2; n = 0; new_h -= 5; usleep(10000); } free(buf24); free(scale_buf); free(buf32); return 0; }
int roll(char *filename,char *filename1, fb_info fb_inf) { fb_info jpeg_inf; fb_info jpeg_inf1; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); u8_t *buf241 = decode_jpeg(filename1, &jpeg_inf1); u8_t * scale_buf1 = scale24(buf241, fb_inf, jpeg_inf1); u32_t *buf321 = rgb24to32(scale_buf1, fb_inf); int i, j, n, m; // x, y is a point of the roll picture // w, h is the wide and high of the pictrue int x, y, x1, y1, w, h; x = fb_inf.w/8; y = fb_inf.h/2; w = 325; h = 455; x1 = 40; y1 = 205; for(j = 0; j < fb_inf.h; j++) for(i = 0; i < fb_inf.w; i++) fb_pixel(fb_inf, i, j, buf32[j*fb_inf.w + i]); for(j = 0; j < h - 15; j++) { for(n = 0 , m = 15; n <= j; n++, m--) { if(m > 0) for(i = 0; i < w; i++) fb_pixel(fb_inf, i + x1, y1 + m, buf321[(y1 + h - j + 15 - m - 10)*fb_inf.w + i + x1]); for(i = 0; i < w; i++) { // if(n < h/10&& m > 0) // fb_pixel(fb_inf, i + x1, y1 + n - 15, buf321[(y1 + h - j + n - m+ h/10 - 50 )*fb_inf.w + i + x1]); fb_pixel(fb_inf, i + x1, y1 + 15 + n, buf321[(y1 + h - j + n)*fb_inf.w + i + x1]); } } usleep(10000); } free(buf24); free(scale_buf); free(buf32); free(buf241); free(scale_buf1); free(buf321); return 0; }
/* display jpeg inset */ int display_jpeg_inset(const char *jpeg_big, const char *jpeg_small, int x, int y, float value, fb_info small_inf, fb_info fb_inf) { fb_info jpeg_inf1; fb_info jpeg_inf2; int xres; int yres; int xloop; int yloop; u8_t *buf24_big = decode_jpeg(jpeg_big, &jpeg_inf1); u8_t *scale_buf_big = scale24(buf24_big, fb_inf, jpeg_inf1); u32_t *buf32_big = rgb24to32(scale_buf_big, fb_inf); u8_t *buf24_small = decode_jpeg(jpeg_small, &jpeg_inf2); u8_t *scale_buf_small = scale24(buf24_small, small_inf, jpeg_inf2); u32_t *buf32_small = rgb24to32(scale_buf_small, small_inf); for (yloop = 0; yloop < small_inf.h; yloop++) { for (xloop = 0; xloop < small_inf.w; xloop++) { *((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 2) = (float)(*((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 2)) * (1 - value) + (float)(*((u8_t *)&buf32_small[xloop + (yloop * small_inf.w)] + 2)) * value; *((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 1) = (float)(*((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 1)) * (1 - value) + (float)(*((u8_t *)&buf32_small[xloop + (yloop * small_inf.w)] + 1)) * value; *((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 0) = (float)(*((u8_t *)&buf32_big[x + xloop + ((y + yloop) * fb_inf.w)] + 0)) * (1 - value) + (float)(*((u8_t *)&buf32_small[xloop + (yloop * small_inf.w)] + 0)) * value; } } for (yres = 0; yres < fb_inf.h; yres++) { for (xres = 0; xres < fb_inf.w; xres++) { fb_pixel(fb_inf, xres, yres, buf32_big[xres + (yres * fb_inf.w)]); } } free(buf24_small); free(scale_buf_small); free(buf32_small); free(buf24_big); free(scale_buf_big); free(buf32_big); return 0; }
int display_nature(char *filename,fb_info fb_inf) { //u_char *decode_jpeg (const char *filename, fb_info *jpeg_inf) u_char *jpeg_retbuf; fb_info jpeg_inf; jpeg_retbuf = decode_jpeg(filename,&jpeg_inf); if(jpeg_retbuf == NULL){ fprintf(stderr,"decode jpeg failed"); return -1; } //u8_t * scale24(u8_t *buf24, fb_info new_inf, fb_info jpeg_inf) u8_t *scale_buf = scale24(jpeg_retbuf,fb_inf,jpeg_inf); if(scale_buf == NULL){ fprintf(stderr,"scale24 call failed.\n"); return -2; } //u32_t * rgb24to32(u8_t *buf24, fb_info jpeg_inf) u32_t *screen_buf = rgb24to32(scale_buf,jpeg_inf); if(screen_buf == NULL){ fprintf(stderr,"trans from 24 to 32 failed.\n"); return -3; } u32_t display_size = fb_inf.w * fb_inf.h * 4 ; memcpy(fb_inf.fbmem,screen_buf,display_size-1); free(jpeg_retbuf); jpeg_retbuf = NULL; free(scale_buf); scale_buf = NULL; free(screen_buf); screen_buf = NULL; return 0; }
int mosaic(char *filename, fb_info fb_inf) { fb_info jpeg_inf; int i, j, k; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); for(k = 32; k > 1; k-=2) { for(i = 0; i < fb_inf.h; ++i) { for (j = 0; j < fb_inf.w; ++j) { fb_pixel(fb_inf, j, i, buf32[j + (i / k) * k * fb_inf.w]); } } if(msg[0] == 2) return 1; usleep(40000 - 1000 * k); } free(buf24); free(scale_buf); free(buf32); return 0; }
/* display jpeg blind x */ int display_jpeg_blind_x(const char *jpegname, fb_info fb_inf) { fb_info jpeg_inf; int xres; int yres; int xloop; u8_t *buf24 = decode_jpeg(jpegname, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); for(xloop = 0; xloop < fb_inf.w / 5; xloop++) { for (xres = xloop; xres < fb_inf.w; xres += fb_inf.w / 5) { for(yres = 0; yres < fb_inf.h; yres++) { fb_pixel(fb_inf, xres, yres, buf32[xres + (yres * fb_inf.w)]); } } usleep(1); } free(buf24); free(scale_buf); free(buf32); return 0; }
/* display jpeg right */ int display_jpeg_right(const char *jpegname, fb_info fb_inf) { fb_info jpeg_inf; int xres; int yres; int xloop; u8_t *buf24 = decode_jpeg(jpegname, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); for (xloop = 0; xloop < fb_inf.w; xloop++) { for (xres = 0; xres <= xloop; xres++) { for (yres = 0; yres < fb_inf.h; yres++) { fb_pixel(fb_inf, xres, yres, buf32[fb_inf.w - 1 - xloop + xres + yres * fb_inf.w]); // fb_pixel(fb_inf, xres, fb_inf.h - 1 - yloop + yres, buf32[xres + ((fb_inf.h / 2 + yres) * fb_inf.w)]); } } } free(buf24); free(scale_buf); free(buf32); return 0; }
int show(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, x, y, r; r = 0; x = fb_inf.w/2; y = fb_inf.h/2; while(r < 700) { for(j = 0; j < fb_inf.h; j++) for(i = 0; i < fb_inf.w; i++) if((x - i)*(x - i) + (y - j)*(y - j) <= r*r) fb_pixel(fb_inf, i, j, buf32[i + j * fb_inf.w]); r++; // usleep(100); } free(buf24); free(scale_buf); free(buf32); return 0; }
int display_muspic(char *filename, fb_info old_inf) { fb_info jpeg_inf; fb_info fb_inf; int x = 0; int y = 0; fb_inf.h = (int)(old_inf.h/2.5); fb_inf.w = (int)(old_inf.w/5); u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *bufs32 = rgb24to32(scale_buf, fb_inf); int i, j; x = (int)(old_inf.w/7*5); y = (int)(old_inf.h/10*1); for (j = 0; j < fb_inf.w; ++j){ for(i = 0; i < fb_inf.h; ++i){ //fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); fb_pixel(old_inf, x+j, y+i, bufs32[j + i * fb_inf.w]); } } free(buf24); free(scale_buf); free(bufs32); return 0; }
int display_jpeg(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); int i, j; for (j = 0; j < fb_inf.w; ++j){ for(i = 0; i < fb_inf.h; ++i){ fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); } } //for (j = 0; j < jpeg_inf.w/2; ++j){ //for(i = 0; i < jpeg_inf.h/2; ++i){ ////fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); //fb_pixel(fb_inf, j, i, buf32[2*j + 2*i * fb_inf.w]); //} //usleep(2000); //} free(buf24); free(scale_buf); free(buf32); return 0; }
int display_part(char *filename,int x, int y, fb_info fb_inf) { fb_info jpeg_inf; fb_info new_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); new_inf.w = jpeg_inf.w*fb_inf.w/1024; new_inf.h = jpeg_inf.h*fb_inf.h/768; u8_t * scale_buf = scale24(buf24, new_inf, jpeg_inf); u32_t *bufe32 = rgb24to32(scale_buf, new_inf); int i, j; for (j = 0; j < new_inf.w; ++j){ for(i = 0; i < new_inf.h; ++i){ if(bufe32[j + i*new_inf.w] > 0x020000) fb_pixel(fb_inf, x+j, y+i, bufe32[j + i * new_inf.w]); } } free(scale_buf); free(buf24); free(bufe32); return 0; }
int display1(info_t*fb,int x,int y,info_t *jpeg_size, char*filename) { info_t jpeg; u8_t *buf = decode_jpeg(filename,&jpeg); u8_t *buf24 = scale24(buf,jpeg_size,&jpeg); u32_t *buf32 = rgb24to32(buf24,jpeg_size); int i,j,t; for(t=680;t>0;t--) { for(j=0;j<jpeg_size->h;j++) { for(i=0;i<jpeg_size->w;i++) { if((i-jpeg_size->w/2)*(i-jpeg_size->w/2)+(j-jpeg_size->h/2)*(j-jpeg_size->h/2)>=t*t) {fb_pixel(fb,i+x,j+y,buf32[i+j*jpeg_size->w]);} } } usleep(100); } free(buf); free(buf24); free(buf32); return 0; }
int turn(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, w, h, m, n; n = 1024; m = 1024*5/7; while(n > 0) { for(j = 0; j < fb_inf.h; j++ ) for(i = 0; i < fb_inf.w; i++) { w = i*n/1024; h = j*m/768; fb_pixel(fb_inf, i, j, buf32[h*fb_inf.w + w]); } n += 7; m += 5; usleep(10000); } free(buf24); free(scale_buf); free(buf32); return 0; }
int display_jpeg(char *filename, fb_info fb_inf) { fb_info original_jpeg; /* original size */ fb_info new_jpeg; new_jpeg = fb_inf; /* screen size */ u8_t *buf24 = decode_jpeg(filename, &original_jpeg); u8_t * scale_buf = scale24(buf24, new_jpeg, original_jpeg); u32_t *buf32 = rgb24to32(scale_buf, new_jpeg); int i, j; for(i = 0; i < new_jpeg.h; ++i){ for (j = 0; j < new_jpeg.w; ++j){ fb_pixel(fb_inf, j, i, buf32[j + i * new_jpeg.w]); } } free(buf24); free(scale_buf); free(buf32); return 0; }
int moveline2(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, n; for(n = 0; n <= fb_inf.w/2; n++) { for(j = 0; j < fb_inf.h; j++) { for(i = 0; i <= n; i++) fb_pixel(fb_inf, i , j, buf32[j*fb_inf.w + i]); for(i = 0; i <= n; i++) fb_pixel(fb_inf, i + fb_inf.w - n , j , buf32[j*fb_inf.w + i + fb_inf.w - n]); } usleep(10); } free(buf24); free(scale_buf); free(buf32); return 0; }
int display(info_t*fb, int x, int y,info_t *jpeg_size,char *filename) { info_t jpeg; u8_t *buf = decode_jpeg(filename,&jpeg); u8_t *buf24=scale24(buf,jpeg_size,&jpeg); u32_t *buf32=rgb24to32(buf24,jpeg_size); int i,j; for(j=0;j<jpeg_size->h/8;++j) { for(i = 0;i< jpeg_size->w; ++i) { int n = jpeg_size->h/8; fb_pixel(fb, i+x, y+j,buf32[i+j*jpeg_size->w]); fb_pixel(fb, i+x, y+n+j,buf32[i+(j+n)*jpeg_size->w]); fb_pixel(fb, i+x, y+2*n+j,buf32[i+(j+2*n)*jpeg_size->w]); fb_pixel(fb, i+x, y+3*n+j,buf32[i+(j+3*n)*jpeg_size->w]); fb_pixel(fb, i+x, y+4*n+j,buf32[i+(j+4*n)*jpeg_size->w]); fb_pixel(fb, i+x, y+5*n+j,buf32[i+(j+5*n)*jpeg_size->w]); fb_pixel(fb, i+x, y+6*n+j,buf32[i+(j+6*n)*jpeg_size->w]); fb_pixel(fb, i+x, y+7*n+j,buf32[i+(j+7*n)*jpeg_size->w]); } usleep(1000); } free(buf); free(buf24); free(buf32); return 0; }
int fly_left_right(char *filename, fb_info fb_inf) { fb_info jpeg_inf; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); //float gama = fb_inf.w / fb_inf.h; int i, j, k; for(k = 0; k < fb_inf.w; k+=10) { for(i = 0; i < fb_inf.h; ++i) { for (j = fb_inf.w - k; j < fb_inf.w; ++j) { fb_pixel(fb_inf, j + k - fb_inf.w, i, buf32[j + i * fb_inf.w]); } } if(msg[0] == 2) return 1; } free(buf24); free(scale_buf); free(buf32); return 0; }
int disp_expand(char *filename, fb_info fb_inf) { fb_info jpeg_inf; int i, j, k, l; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); for(l = 1; l <= 16; l++) { for(k = 0;k < fb_inf.w / 32 * fb_inf.h / 32; k++) { for(i = k / (fb_inf.w / 32) * 32 + 16 - l; i < k / (fb_inf.w / 32) * 32 + 16 + l; ++i) { for (j = k % (fb_inf.w / 32) * 32 + 16 - l; j < k % (fb_inf.w / 32) * 32 + 16 + l; ++j) { fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); } } } if(msg[0] == 2) return 1; usleep(100000); } free(buf24); free(scale_buf); free(buf32); return 0; }
/* display jpeg door */ int display_jpeg_door(const char *jpegname, fb_info fb_inf) { fb_info jpeg_inf; int yres; int xloop; u8_t *buf24 = decode_jpeg(jpegname, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); for (xloop = 0; xloop < fb_inf.w / 2; xloop++) { for(yres = 0; yres < fb_inf.h; yres++) { fb_pixel(fb_inf, fb_inf.w / 2 - xloop, yres, buf32[fb_inf.w / 2 - xloop + (yres * fb_inf.w)]); fb_pixel(fb_inf, fb_inf.w / 2 + xloop, yres, buf32[fb_inf.w / 2 + xloop + (yres * fb_inf.w)]); } usleep(1); } free(buf24); free(scale_buf); free(buf32); return 0; }
int push(char *filename, fb_info fb_inf) { fb_info jpeg_inf; fb_info scale_inf; int i, j, k; scale_inf = fb_inf; buf24 = decode_jpeg(filename, &jpeg_inf); for(k = 95; k >= 0; k--) { scale_inf.w = fb_inf.w - (fb_inf.w / 100) * k; scale_inf.h = fb_inf.h - (fb_inf.h / 100) * k; scale_buf = scale24(buf24, scale_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, scale_inf); for(i = 0; i < scale_inf.h; ++i) { for (j = 0; j < scale_inf.w; ++j) { fb_pixel(fb_inf, j + (fb_inf.w - scale_inf.w) / 2, i + (fb_inf.h - scale_inf.h) / 2, buf32[j + i * scale_inf.w]); } } if(msg[0] == 2) return 1; free(scale_buf); free(buf32); usleep(10000); } free(buf24); return 0; }
/* display jpeg down */ int display_jpeg_down(const char *jpegname, fb_info fb_inf) { fb_info jpeg_inf; int xres; int yres; int yloop; u8_t *buf24 = decode_jpeg(jpegname, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); for (yloop = 0; yloop < fb_inf.h / 2; yloop += 2) { for (yres = 0; yres < yloop; yres++) { for (xres = 0; xres < fb_inf.w / 2; xres++) { fb_pixel(fb_inf, xres, yres + 2, buf32[xres + ((fb_inf.h / 2 - yloop + yres) * fb_inf.w)]); fb_pixel(fb_inf, fb_inf.w / 2 + xres, yres + 2, buf32[fb_inf.w / 2 + xres + ((fb_inf.h / 2 - yloop + yres) * fb_inf.w)]); fb_pixel(fb_inf, xres, fb_inf.h - 2 - yloop + yres, buf32[xres + ((fb_inf.h / 2 + yres) * fb_inf.w)]); fb_pixel(fb_inf, fb_inf.w / 2 + xres, fb_inf.h - 2 - yloop + yres, buf32[fb_inf.w / 2 + xres + ((fb_inf.h / 2 + yres) * fb_inf.w)]); } } } free(buf24); free(scale_buf); free(buf32); return 0; }
int shutter(char *filename, fb_info fb_inf) { fb_info jpeg_inf; int i, j, k; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); for(i = 0; i < fb_inf.h / 20; ++i) { for(k = 0; k < 20; k++) { for (j = 0; j < fb_inf.w; ++j) { fb_pixel(fb_inf, j, i+ fb_inf.h / 20 * k, buf32[j + (i + fb_inf.h / 20 * k) * fb_inf.w]); } } if(msg[0] == 2) return 1; usleep(10000); } free(buf24); free(scale_buf); free(buf32); return 0; }
/* display jpeg mosaic*/ int display_jpeg_mosaic(const const char *jpegname, fb_info fb_inf, int size) { fb_info jpeg_inf; int xres; int yres; u8_t *buf24 = decode_jpeg(jpegname, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); for (;size > 1; size--) { for (yres = 0; yres < fb_inf.h; yres++) { for (xres = 0; xres < fb_inf.w; xres++) { fb_pixel(fb_inf, xres, yres, buf32[(xres / size) * size + size / 2 + (((yres / size) * size + size / 2) * fb_inf.w)]); } } usleep(300000); } free(buf24); free(scale_buf); free(buf32); return 0; }
int display_four(const char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, n, m; for(i=0, j=0; i<=fb_inf.h/2 || j<=fb_inf.w/2; i= i + 6, j = j + 8) { for(n=0; n<=i; n++) { for(m=0; m<=j; m++) { if(*status_p == 0) goto biao3; fb_pixel(fb_inf, m, n, buf32[fb_inf.w * (fb_inf.h/2 -i + n) + fb_inf.w/2 - j + m]); fb_pixel(fb_inf, m, fb_inf.h - n - 1, buf32[fb_inf.w * (fb_inf.h/2 + i - n) + fb_inf.w/2 - j + m]); fb_pixel(fb_inf, fb_inf.w - m, n, buf32[fb_inf.w * (fb_inf.h/2 -i + n) + fb_inf.w/2 + j - m]); fb_pixel(fb_inf, fb_inf.w - m, fb_inf.h - n - 1, buf32[fb_inf.w * (fb_inf.h/2 +i -n) + fb_inf.w/2 +j - m]); } } } biao3: free(buf24); free(scale_buf); free(buf32); return 0; }
int movedown(char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, n; for(j = 0; j < fb_inf.h; j++) { for(n = 0; n <= j; n++) for(i = 0; i < fb_inf.w; i++) fb_pixel(fb_inf, i, fb_inf.h - 1 - j + n, buf32[n*fb_inf.w + i]); usleep(10); } free(buf24); free(scale_buf); free(buf32); return 0; }
int display_xie1(const char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i, j, n, m; for(i=0, j=0; i<= fb_inf.h || j<= fb_inf.w; i= i + 6, j = j + 8) { for(n=0; n<i; n++) for(m=0; m<j; m++) { if(*status_p == 0) goto biao2; fb_pixel(fb_inf, m, n, buf32[fb_inf.w * (fb_inf.h -i + n) + fb_inf.w - j + m]); } } biao2: free(buf24); free(scale_buf); free(buf32); return 0; }
int display_midtoside(const char *filename, fb_info fb_inf) { fb_info jpeg_inf; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inf); int i,j = 50000,m = 5; for(i=0; i<=fb_inf.h/2-1; i++) { fb_line(fb_inf.h/2 - 1 - i); fb_line(fb_inf.h/2+i); while(m--) { while(j--); j = 50000; } m = 5; if(*status_p == 0) goto dong05; } dong05: free(buf24); free(scale_buf); free(buf32); return 0; }
int display_v_up(const char *filename, fb_info fb_inf, fb_info fb_xin) { fb_info jpeg_inf; fb_info fb_inff = fb_xin; int x1 = fb_inf.w/2, y1 = fb_inf.h, x2 = fb_inf.w/2, y2 = fb_inf.h; int x3 = fb_inf.w/2, y3 = fb_inf.h-1, x4 = fb_inf.w/2, y4 = fb_inf.h-1; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t *scale_buf = scale24(buf24, fb_inff, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, fb_inff); while(y1>0) { display_line(buf32, fb_inf, x1, y1, x2, y2); if(x1 == fb_inf.w-1) { x1 = fb_inf.w-1; y1--; } else x1++; if(y2 == 0) { y2=0; x2++; } else y2--; display_line(buf32, fb_inf, x3, y3, x4, y4); if(x3 == 0) { x3 = 0; y3--; } else x3--; if(y4 == 0) { y4=0; x4--; } else y4--; usleep(2); if(*status_p == 0) goto biaoshan2; } biaoshan2: free(buf24); free(scale_buf); free(buf32); return 0; }
int grain(char *filename, fb_info fb_inf) { fb_info jpeg_inf; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, fb_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, fb_inf); int i, j, count = 0, temp, tcount = 0; int assigned[3072] = {0}; srand((unsigned)time(NULL)); while(count < 3072) { temp = rand() % 3072; tcount++; if(!assigned[temp]) { assigned[temp] = 1; for(i = temp/64 * 16; i < temp/64 * 16 + 16; ++i) { for (j = temp%64 * 16; j < temp%64 * 16 + 16; ++j) { fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); } } count++; delay(1); if(msg[0] == 2) return 1; } if(count > 2500) { for(i = 0; i < fb_inf.h; ++i) { for (j = 0; j < fb_inf.w; ++j) { fb_pixel(fb_inf, j, i, buf32[j + i * fb_inf.w]); } } if(msg[0] == 2) return 1; break; } if(tcount == 10000) { srand((unsigned)time(NULL)); tcount = 0; } } free(buf24); free(scale_buf); free(buf32); return 0; }
/* void fb_save(fb_info fb_inf, int width, int hight, int startx, int starty) { int i; for(i = 0; i < hight; i++) { memcpy(save[i], fb_inf.fbmem + ((starty + i) * fb_inf.w + startx) * 4, width * 4); } } void fb_recover(fb_info fb_inf, int width, int hight, int startx, int starty) { int i; for(i = 0; i < hight; i++) { memcpy(fb_inf.fbmem + ((starty + i) * fb_inf.w + startx) * 4, save[i], width * 4); } } int display_jpeg(char *filename, fb_info fb_inf, int width, int hight) { fb_info jpeg_inf; fb_info pic_inf = fb_inf; pic_inf.w = width; pic_inf.h = hight; u8_t *buf24 = decode_jpeg(filename, &jpeg_inf); u8_t * scale_buf = scale24(buf24, pic_inf, jpeg_inf); u32_t *buf32 = rgb24to32(scale_buf, pic_inf); int i, j; for(i = 0; i < pic_inf.h; ++i){ for (j = 0; j < pic_inf.w; ++j){ fb_pixel(fb_inf, j, i, buf32[j + i * pic_inf.w]); } } free(buf24); free(scale_buf); free(buf32); return 0; }*/ void load_image(char *filename,fb_info fb_inf, int width, int hight) { fb_info jpeg_inf; fb_info pic_inf = fb_inf; pic_inf.w = width; pic_inf.h = hight; buf24 = decode_jpeg(filename, &jpeg_inf); scale_buf = scale24(buf24, pic_inf, jpeg_inf); buf32 = rgb24to32(scale_buf, pic_inf); }