图像旋转90度(CImage类实现)(不同的位深度)
来源:互联网 发布:做人工智能的企业 编辑:程序博客网 时间:2024/06/09 18:27
//读取原始图片信息
CImage * srcImage = new CImage();
srcImage->Load(strPicName);BYTE* srcPtr=(BYTE*)srcImage->GetBits();
int srcBitsCount=srcImage->GetBPP();
int srcWidth=srcImage->GetWidth();
int srcHeight=srcImage->GetHeight();
int srcPitch=srcImage->GetPitch();
//删除原始图片
DeleteFile(strPicName);
//创建新图像
destImage->Create(1200,800,srcBitsCount,0);
//加载调色板
if(srcBitsCount<=8 && srcImage->IsIndexed())//需要调色板
{
RGBQUAD pal[256];
int nColors=srcImage->GetMaxColorTableEntries();
if(nColors>0)
{
srcImage->GetColorTable(0,nColors,pal);
destImage->SetColorTable(0,nColors,pal);//复制调色板程序
}
}
//目标图像参数
BYTE *destPtr=(BYTE*)destImage->GetBits();
int destPitch=destImage->GetPitch();
//复制图像数据
for(int i=0 ; i<1200;i++)
{
for(int j=0;j<800;j++)
{
if(srcBitsCount == 24)
{
*(destPtr+ (799-j)*destPitch + 3*i) = *(srcPtr + i*srcPitch +3*j);//目的图片的第一列*(destPtr+ (799-j)*destPitch + 3*i+1) = *(srcPtr + i*srcPitch +3*j+1);
*(destPtr+ (799-j)*destPitch + 3*i+2) = *(srcPtr + i*srcPitch +3*j+2);
}
else if(srcBitsCount == 8)
{
*(destPtr+ (799-j)*destPitch + i) = *(srcPtr + i*srcPitch +j);//目的图片的第一列}
}}
//保存新图像
destImage->Save(strPicName);
delete srcImage;
delete destImage;
阅读全文
0 0
- 图像旋转90度(CImage类实现)(不同的位深度)
- 图像旋转使用CImage实现
- 图像旋转使用CImage实现
- CImage类的介绍与使用 【图像打开,另存为,转为灰度图像(利用cimage方法实现)】
- CImage实现旋转
- OpenCV显示图像时,不同位深度的影响
- 图像缩放函数(CImage)
- opecncv不同深度图像的转换(IPL_DEPTH_8U和IPL_DEPTH_32F)
- opecncv不同深度图像的转换(IPL_DEPTH_8U和IPL_DEPTH_32F)
- opecncv不同深度图像的转换(IPL_DEPTH_8U转IPL_DEPTH_32F)
- opecncv不同深度图像的转换(IPL_DEPTH_8U和IPL_DEPTH_32F)
- Cimage类处理图像像素(数据)的3种方式
- Cimage类处理图像像素(数据)的3种方式
- MFC中显示图像的类CImage
- MFC中显示图像的类CImage
- 【图像处理】CImage类的简单应用
- 不同深度图像的处理
- 图像旋转的实现
- 指针面试例题解析———总结
- 《利用Python进行数据分析》笔记---第7章数据规整化:清理、转换、合并、重塑
- Liunx下安装mysql数据库
- springcloud项目(eureka服务发现+zuul网关)部署至docker中tomcat
- 打包静态库--包含三方依赖
- 图像旋转90度(CImage类实现)(不同的位深度)
- c/c++ 面试笔试知识点----牛客网(4)
- DNS高速缓存服务器
- http跨平台访问接口的post,get,及文件上传方式工具类(httpClient)
- MapStringUtil
- Hadoop(4)-MapReduce原理
- 一个简单的网站布局(div+CSS)
- Git学习笔记三(创建Github SSH Key、git push、git clone)
- Java中的equals和==和equalsIgnoreCase()的区别