我的任务是按给定的比例缩放bmp图片:
stream:base64 bmp图片代码:
Qk1CAAAAAAAAADYAAAAoAAAABAAAAAEAAAABABgAAAAAAAwAAAAjLgAAIy4AAAAAAAAAAAAA/////wAAAP8AAAAA
scale.c] >>
] >>struct bmp_image* scale(const struct bmp_image* image, float factor){ if(image == NULL || factor <= 0){ return NULL; } ......... int width = bmp->header->width; int height = bmp->header->height; int widthNew = (int)round((float)width * factor); int heightNew = (int)round((float)height * factor); for (uint32_t y = 0; y < heightNew; y++){ for(uint32_t z = 0; z< widthNew; z++){ bmp->data[(y*widthNew)+z].red=image->data[(int)(floor((float)y/(float)factor)*width+floor((float)z/(float)factor))].red; bmp->data[(y*widthNew)+z].green=image->data[(int)(floor((float)y/(float)factor)*width+floor((float)z/(float)factor))].green; bmp->data[(y*widthNew)+z].blue=image->data[(int)(floor((float)y/(float)factor)*width+floor((float)z/(float)factor))].blue; } } return bmp; }
main.c
FILE *output_p8 = fopen("scale.bmp", "w"); struct bmp_image* newimage8 = NULL; newimage8 = scale(image, 1.025656); free_bmp_image(image); write_bmp(output_p8,newimage8); free_bmp_image(newimage8); fclose(output_p8);
数据输出之后我得到的是:
ffffff ffffff ff0000 00ff00
我应该拥有的数据:
ffffff ff0000 00ff00 000000
有什么建议吗?
我的任务是按给定的比例缩放bmp图片:流:base64 bmp图像代码:Qk1CAAAAAAAAADYDYAAoAAAABAAAAAEAAAABABgAAAAAAwwAAjLgAAIy4AAAAAAAAAAAAA ///// wAAAP8AAAAA scale.c struct ...
int widthNew = round(width * factor);