图像旋转使用CImage实现
来源:互联网 发布:带着淘宝去古代txt 编辑:程序博客网 时间:2024/05/29 20:04
原博客:http://blog.csdn.net/superdont/article/details/7832706
图像旋转使用CImage实现,此处旋转30度。具体实现如下:
void CDIGTLSView::OnTestTest(){//程序编制:李立宗 lilizong@gmail.com//2012-8-5if(myImage1.IsNull())OnOpenResourceFile();if(myImage2.IsNull()){myImage2.Create(myImage1.GetWidth(),myImage1.GetHeight(),24,0);}COLORREF pixel; int maxY = myImage1.GetHeight();int maxX=myImage1.GetWidth();byte* pRealData;byte* pRealData2;pRealData=(byte*)myImage1.GetBits();pRealData2=(byte*)myImage2.GetBits();int pit=myImage1.GetPitch();int pit2=myImage2.GetPitch();//需要注意,pit和pit2的值并不一样,所以如果使用一个值,会导致不同的结果出现//CString str;//str.Format(TEXT("%d"),pit);//MessageBox(str);//str.Format(TEXT("%d"),pit2);//MessageBox(str);int bitCount=myImage1.GetBPP()/8;int bitCount2=myImage2.GetBPP()/8;int tempR,tempG,tempB;float const1,const2;float fCosa=cos(30*3.14/180);float fSina=sin(30*3.14/180);const1=(float)(-0.5*(maxX-1)*fCosa-0.5*(maxY-1)*fSina+0.5*(maxX-1));const2=(float)(0.5*(maxX-1)*fSina-0.5*(maxY-1)*fCosa+0.5*(maxY-1));int tempX,tempY;//说明:将生产的图像作为24位图处理。for (int y=0; y<maxY; y++) {for (int x=0; x<maxX; x++) {tempY=-(float)x*fSina+(float)y*fCosa+const2+0.5;tempX=(float)x*fCosa+(float)y*fSina+const1+0.5;if(tempY>=0&&tempY+2<=maxY&&tempX>=0&&tempX+2<=maxX){tempR=(int)(int)(*(pRealData+pit*tempY+tempX*bitCount));if(bitCount==1){tempG=tempR;tempB=tempR;}else{tempG=(int)(int)(*(pRealData+pit*tempY+tempX*bitCount+1));tempB=(int)(int)(*(pRealData+pit*tempY+tempX*bitCount+2));tempG=0;tempB=0;}}else{tempR=255;tempG=0;tempB=0;}*(pRealData2+pit2*y+x*bitCount2)=tempR;*(pRealData2+pit2*y+x*bitCount2+1)=tempG;*(pRealData2+pit2*y+x*bitCount2+2)=tempB;}}Invalidate();}
阅读全文
0 0
- 图像旋转使用CImage实现
- 图像旋转使用CImage实现
- CImage实现旋转
- CImage类的介绍与使用 【图像打开,另存为,转为灰度图像(利用cimage方法实现)】
- 图像旋转90度(CImage类实现)(不同的位深度)
- 使用CImage进行图像处理
- 使用CImage类将RGB图像转化为灰度图像
- j2me实现图像旋转
- opencv实现图像旋转
- opencv实现图像旋转
- Opencv实现图像旋转
- OpenCV实现图像旋转
- opencv实现图像旋转
- opencv实现图像旋转
- 图像旋转的实现
- opencv实现图像旋转
- matlab实现图像旋转
- Qt实现图像旋转
- Vue2原理浅谈
- Web(二维字符数组的应用)(poj)
- java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
- C语言基础练习14
- CodeForces
- 图像旋转使用CImage实现
- VirtualDOM与diff(Vue实现)
- codeforces 840D 主席树
- FOC控制基于电阻的电流采样方案比较
- tf.split (API r1.3)
- vue-router源码分析-整体流程
- 求n个数的最小公倍数
- win10快捷键
- ffmpeg系列之两种视频解码方式