用c语言实现图片的任意倍数缩小和放大

您所在的位置:网站首页 怎么把照片放大比例变大 用c语言实现图片的任意倍数缩小和放大

用c语言实现图片的任意倍数缩小和放大

2024-07-04 03:50| 来源: 网络整理| 查看: 265

背景: 显示屏尺寸800 * 480; 图片尺寸300 * 200,类型为bmp 初始坐标值(0,0); 显示原理:利用for循环计算出放大倍数所需扫描大小,if条件判断是否超出屏幕,根据算法原理,假设放大后数组为a,原图数组为b,一行为7个,放大倍数为1.2倍,那么一行会包含7*1.2=8.4,取8即可,a[0]=b[0],a[1]=b[0],用下标/倍数来计算放大后颜色值,为原图哪个坐标值。 核心代码:

double n=2.3; for(int i=0;ilcd_fd == -1) { fprintf(stderr,"打开设备文件失败"); exit(EXIT_FAILURE); } p->addr = mmap(NULL , LCD_SIZE , PROT_READ | PROT_WRITE , MAP_SHARED,p->lcd_fd , 0 ); if(p->addr == MAP_FAILED) { printf("map failed!\n"); return ; } } void lcd_uninit(LCD_DEV *lcd_p) { munmap(lcd_p->addr, 800*480*4); close(lcd_p->lcd_fd); } void show(int x, int y, int bmp_w, int bmp_h, const char *bmpname, LCD_DEV *lcd_p) { FILE *fp = fopen(bmpname,"r"); fseek(fp,54,SEEK_SET); unsigned char buf1[bmp_h*bmp_w*3];//buf1为图片缓冲数组 unsigned int buf2[bmp_h*bmp_w];//buf2为转换后数组 fread(buf1,3,bmp_h*bmp_w,fp); for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3