影子论坛

发新帖

上下左右翻转图片 源码

wuhuisai 2019-1-9 720


//获取bitmap上一个像素的颜色 abgr格式
int bitmap_getPix(BITMAPINFO *info, int x,int y)
{
 int *ptr=info->ptr;
 return *(ptr + info->width*y+x);
}


//设置bitmap上一个像素的颜色 abgr格式
int bitmap_setPix(BITMAPINFO *info, int x,int y,int color)
{
 int *ptr=info->ptr;
 *(ptr + info->width*y+x)=color;
 return 0;
}




//翻转bitmap,返回翻转后的bitmap
int bitmap_turn(int bitmap,int up, int left)
{
 int ix,iy;
 BITMAPINFO*info = malloc(sizeof(BITMAPINFO));
 bitmapGetInfo(bitmap,info);
 
 //左右翻转 上下翻转
 int temp_bitmap = createBitmap(info->width,info->height);
 BITMAPINFO*temp_info = malloc(sizeof(BITMAPINFO));
 bitmapGetInfo(temp_bitmap,temp_info);
 for(iy = 0;iy<info->height;iy++)
 {
  for(ix = 0;ix<info->width;ix++)
  {
   int pix = bitmap_getPix(info,ix,iy);
   bitmap_setPix(temp_info,(left==1)?(info->width-ix):ix,(up==1)?(info->height-iy):iy, pix);
  }
 }
 
 free(info);
 free(temp_info);
 return temp_bitmap;
}

最新回复 (2)
风的影子 2019-1-10
引用 1
这样也行?
wuhuisai 2019-1-13
引用 2
风的影子 这样也行?
瞎写的
返回
发新帖
wuhuisai
主题数
29
帖子数
37
注册排名
2

Processed Time:0.21591782569885