資源簡介
Arm平臺下開發的一款觸摸式簡易電子鋼琴,可彈奏十幾個不同的音符

代碼片段和文件信息
///////////////////////////////////////////////////////////
//
//??Copyright(C)?2013-2017?GEC?Tech.?Co.?Ltd.
//
//??文件:?piano/src/bmp.c
//??日期:?2017-9
//??描述:?處理BMP格式圖像數據
//
//??作者:?Vincent?Lin?(林世霖)??微信公眾號:秘籍酷
//
//??技術微店:?http://weidian.com/?userid=260920190
//??技術交流:?260492823(QQ群)
//
///////////////////////////////////////////////////////////
#include?
#include?“bmp.h“
char?*?load_bmp(const?char?*bmpfile?struct?image_info?*minfo)
{
int?fd?=?open(bmpfile?O_RDONLY);
if(fd?==?-1)
{
fprintf(stderr?“opening?\“%s\“?failed:?%s\n“
bmpfile?strerror(errno));
exit(0);
}
//?獲得文件大小,并分配內存
struct?stat?fileinfo;
fstat(fd?&fileinfo);
int???rgb_size?=?fileinfo.st_size;
char?*rgb_buf??=?calloc(1?rgb_size);
//?讀取BMP內容到內存中
struct?bitmap_header?header;
struct?bitmap_info?info;
struct?rgb_quad?quad;
read(fd?&header?sizeof(header));
read(fd?&info?sizeof(info));
if(info.compression?!=?0)
{
read(fd?&quad?sizeof(quad));
fprintf(stderr?“read?quad!?\n“);
}
read(fd?rgb_buf?rgb_size);
minfo->width?=?info.width;
minfo->height=?info.height;
minfo->pixel_size?=?info.bit_count/8;
close(fd);
return?rgb_buf;
}
void?display(char?*bmpfile?char?*FB
?struct?fb_var_screeninfo?*vinfo
?int?xoffset?int?yoffset)
{
struct?image_info?*minfo?=?calloc(1?sizeof(struct?image_info));
char?*rgb_buf?=?load_bmp(bmpfile?minfo);
char?*tmp?=?rgb_buf;
//?從最后一行開始顯示BMP圖像
int?pad?=?((4-(?minfo->width?*?minfo->pixel_size?)?%?4))?%?4;?//?0-3
rgb_buf?+=?(minfo->width?*?minfo->pixel_size?+?pad)?*?(minfo->height-1);
FB?+=?(yoffset?*?vinfo->xres?+?xoffset)?*?4;
int?lcd_w?=?vinfo->xres?-?xoffset;
int?lcd_h?=?vinfo->yres?-?yoffset;
int?x?y;
for(x=0;?xheight;?x++)
{
for(y=0;?ywidth;?y++)
{
unsigned?long?lcd_offset?=?(vinfo->xres*x?+?y)?*?4;
memcpy(FB?+?lcd_offset?+?vinfo->red.offset/8???rgb_buf?+?2?1);
memcpy(FB?+?lcd_offset?+?vinfo->green.offset/8?rgb_buf?+?1?1);
memcpy(FB?+?lcd_offset?+?vinfo->blue.offset/8??rgb_buf?+?0?1);
rgb_buf?+=?minfo->pixel_size;
}
rgb_buf?+=?pad;
rgb_buf?-=?(minfo->width?*?minfo->pixel_size?+?pad)?*?2;
}
free(tmp);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????1152056??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\background.bmp
?????文件????1145160??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\background.psd
?????文件?????112856??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\bar.bmp
?????文件??????18964??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\BMPfileFormat.png
?????文件??????54936??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\key_off.bmp
?????文件??????54936??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\key_on.bmp
?????文件??????67902??2018-08-20?14:03??模擬鋼琴\07階段項目\bmp\logo.bmp
?????文件??????16384??2018-09-10?21:36??模擬鋼琴\07階段項目\bmp\yrncxafk
?????文件?????611285??2018-08-20?14:03??模擬鋼琴\07階段項目\Linux音頻編程.pdf
?????文件??????21316??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d1.mp3
?????文件??????19644??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d10.mp3
?????文件??????19226??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d11.mp3
?????文件??????18808??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d12.mp3
?????文件??????20898??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d2.mp3
?????文件??????20898??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d3.mp3
?????文件??????20898??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d4.mp3
?????文件??????20898??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d5.mp3
?????文件??????20898??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d6.mp3
?????文件??????21316??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d7.mp3
?????文件??????20062??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d8.mp3
?????文件??????20062??2018-08-20?14:03??模擬鋼琴\07階段項目\mp3\d9.mp3
?????文件???????2422??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v1\bmp.c
?????文件???????1995??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v1\bmp.h
?????文件???????2892??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v1\piano.c
?????文件????????712??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\inc\audio.h
?????文件???????1995??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\inc\bmp.h
?????文件????????997??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\inc\ts.h
?????文件????????739??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\Makefile
?????文件???????3853??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\piano.c
?????文件????????793??2018-08-31?10:26??模擬鋼琴\07階段項目\piano_v2\src\audio.c
............此處省略33個文件信息
評論
共有 條評論