RGB24和YUV420旋转90度的源代码

来源:互联网 发布:琪琪看片 mac版下载 编辑:程序博客网 时间:2024/06/06 05:40
YUV420旋转90度
void YUVRotate90(BYTE *des,BYTE *src,int width,int height)
{
    int i=0,j=0,n=0;
    int hw=width/2,hh=height/2;
    for(j=width;j>0;j--)
        for(i=0;i<height;i++)
        {
            des[n++] = src[width*i+j];
        }

    unsigned char *ptmp = src+width*height;
    for(j=hw;j>0;j--)
        for(i=0;i<hh;i++)
        {
            des[n++] = ptmp[hw*i+j];
        }

    ptmp = src+width*height*5/4;
    for(j=hw;j>0;j--)
    for(i=0;i<hh;i++)
    {
        des[n++] = ptmp[hw*i+j];
    }
}


RGB24旋转90度
void RGBRotate90(BYTE *des,BYTE *src,int width,int height)
{

    if ((!des)||(!src))
    {
        return;
    }
      
    int n = 0;
    int linesize = width*3;
    int i,j;
    for (j=width;j>0;j--)
        for (i=0;i<height;i++)
        {
            memcpy(&des[n],&src[linesize*i+j*3-3],3);
            n+=3;
        }

    /*

    if((!des)||(!src))
    {
        return;
    }
    int n = 0;
    int linesize = width*3;
    int i;
    int j;
    // 顺时针的旋转的算法
    for(j = 0;j < width ;j++)
        for(i= height;i>0;i--)
        {
            memcpy(&des[n],&src[linesize*(i-1)+j*3-3],3);
            n+=3;
        }
    */
}

转载自: http://www.rosoo.net/a/201006/9689.html
阅读(1311) | 评论(0) | 转发(0) |
0

上一篇:RGB565到RGB24转换

下一篇:制作交叉工具链(龙芯)

相关热门文章
  • PHP Extension开发基础
  •   随着计算机技术、通信技术...
  •   随着计算机技术、通信技术...
  • 速途数码家电11月15日讯(文/谢...
  • 电脑绣花机比普通的绣花机好在...
  • test123
  • 编写安全代码——小心有符号数...
  • 使用openssl api进行加密解密...
  • 一段自己打印自己的c程序...
  • sql relay的c++接口
  • 修改默认端口为222,centos自...
  • 用PHP做一个ftp登录页面...
  • Toad for Oracle工具,为什么在...
  • 本地win7安装vmw9系统winserv...
  • powermt config是所什么用的...
给主人留下些什么吧!~~
原创粉丝点击