前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言之图像旋转

C语言之图像旋转

作者头像
闪电gogogo
发布2018-08-21 17:21:14
2.4K0
发布2018-08-21 17:21:14
举报

最近用到了图像向左或者向右旋转90°的情况,纠结了好一会儿,写下来供大家参考。

1 向左旋转90°

//unsigned char *pImgData: 输入图像指针
//int WidthIn, int HeightIn:输入图像宽、高
//unsigned char *pImgOut: 旋转后图像指针
void RotateOfLeft(unsigned char *pImgData, int WidthIn, int HeightIn)
{
    int i, j, tempSize;
    int WidthOut  = HeightIn;
    int HeightOut = WidthIn;
    unsigned char pImgtemp[148*36];            
    for (i = 0; i < HeightIn; i ++)
    {
        for (j = 0;j < WidthIn; j ++)      
        {
            *(pImgtemp + i*WidthIn + j) = *(pImgData*WidthIn + j);
        }      
    }  
    //memcpy(pImgtemp,pImgData,148*36);
    for (i = 0; i < HeightOut; i ++)
    {
        for (j = 0;j < WidthOut; j ++)      
        {
            *(pImgData + i*WidthOut + j) = *(pImgtemp + (j+1)*WidthIn - 1 - i);
        }          
    }
}

2 向右旋转90°

//unsigned char *pImgData: 输入图像指针
//int WidthIn, int HeightIn:输入图像宽、高
//unsigned char *pImgOut: 旋转后图像指针
void RotateOfRight(unsigned char *pImgData, int WidthIn, int HeightIn, unsigned char *pImgOut)
{
    int i, j;
    int WidthOut  = HeightIn;
    int HeightOut = WidthIn;
    for (i = 0; i < HeightOut; i ++)
    {
        for (j = 0;j < WidthOut; j ++)      
        {
            *(pImgOut + i*WidthOut + j) = *(pImgData + (HeightIn - j - 1)*WidthIn + i);
        }          
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 向左旋转90°
  • 2 向右旋转90°
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档