资源简介
Bitmap b(image.GetWidth(),image.GetHeight());如何使用GDI+制作圆形图片(类似QQ圆形头像)(MFC,VC)
代码片段和文件信息
// RoundStatic.cpp : 实现文件
//
#include “stdafx.h“
#include “TestYuan.h“
#include “RoundStatic.h“
#include “.\roundstatic.h“
// CRoundStatic
IMPLEMENT_DYNAMIC(CRoundStatic CStatic)
CRoundStatic::CRoundStatic()
{
m_b=0;
}
CRoundStatic::~CRoundStatic()
{
}
BEGIN_MESSAGE_MAP(CRoundStatic CStatic)
ON_WM_ERASEBKGND()
ON_WM_DESTROY()
ON_WM_PAINT()
END_MESSAGE_MAP()
// CRoundStatic 消息处理程序
BOOL CRoundStatic::OnEraseBkgnd(CDC* pDC)
{
if(m_b)
{
CRect rect;
GetWindowRect(&rect);//<-----******
Graphics go(pDC->m_hDC);
//go.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);
//go.SetInterpolationMode(Gdiplus::InterpolationModeHighQuality);
go.DrawImage(m_b 00 rect.Width() rect.Height());
return 0;
}
return CStatic::OnEraseBkgnd(pDC);
}
bool CRoundStatic::LoadFile(CString szDile)
{
if(m_b)
{
::delete m_b;
m_b=0;
}
CString file=szDile;
//方法一
//Image image(file);
//m_b=::new Bitmap(image.GetWidth()image.GetHeight());
//Graphics g(m_b);
//g.FillEllipse(&TextureBrush(&image) 0 0 image.GetWidth() image.GetHeight());
//方法二
Image image(file);
m_b=::new Bitmap(image.GetWidth()image.GetHeight());
Graphics g(m_b);
g.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);
GraphicsPath p(FillModeAlternate);
p.AddEllipse(0 0 image.GetWidth() image.GetHeight());
g.FillPath(&TextureBrush(&image) &p);
this->Invalidate();
return true;
////获取编码器的CLSID [class id]
//UINT num=0; //图像编码器的数量
//UINT size=0; //图像编码器数组的字节数
//CLSID encoderClsid;
//ImageCodecInfo* pICI=NULL;
//
//GetImageEncodersSize(&num&size);//获得系统编码器的数量和大小
//if(size==0) return false;//失败
//
//pICI = (ImageCodecInfo*)(malloc(size)); //编码器
//if(pICI==NULL) return false;//失败
//
//GetImageEncoders(numsizepICI); //获取编码器信息
//for(int j=0;j //{
// if(wcscmp(pICI[j].MimeTypeL“image/png“)==0)//jpeg bmp gif tiff png
// {
// encoderClsid = pICI[j].Clsid;
// }
//}
//free(pICI);
}
bool CRoundStatic::SaveFile(CString szDile)
{
CString file=szDile;
//方法一
//Image image(file);
//m_b=::new Bitmap(image.GetWidth()image.GetHeight());
//Graphics g(b);
//g.FillEllipse(&TextureBrush(&image) 0 0 image.GetWidth() image.GetHeight());
//方法二
Image image(file);
Bitmap b(image.GetWidth()image.GetHeight());
Graphics g(&b);
g.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);
GraphicsPath p(FillModeAlternate);
p.AddEllipse(0 0 image.GetWidth() image.GetHeight());
g.FillPath(&TextureBrush(&image) &p);
//获取编码器的CLSID [class id]
UINT num=0; //图像编码器的数量
UINT size=0; //图像编码器数组的字节数
CLSID encoderClsid;
ImageCodecInfo* pICI=NULL;
GetImageEncodersSize(&num&size);//获得系统编码器的数量和大小
if(size==0) return false;//失败
pICI = (ImageCodecInfo*)(malloc(size
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.CA.... 94413 2017-04-10 20:10 TestYuan\173318129.jpg
.CA.... 94413 2017-04-10 20:10 TestYuan\Debug\173318129.jpg
.CA.... 739088 2017-07-29 15:00 TestYuan\Debug\173318129.png
.CA.... 2338816 2017-07-29 15:02 TestYuan\Debug\TestYuan.exe
.CA.... 2834 2017-07-28 09:54 TestYuan\ReadMe.txt
.CA.... 1805054 2017-07-28 10:08 TestYuan\res\bitmap1.bmp
.CA.... 21630 2003-04-02 03:36 TestYuan\res\TestYuan.ico
.CA.... 697 2017-07-28 09:54 TestYuan\res\TestYuan.manifest
.CA.... 364 2017-07-28 09:54 TestYuan\res\TestYuan.rc2
.CA.... 909 2017-07-28 17:12 TestYuan\resource.h
.CA.... 3812 2017-07-29 14:54 TestYuan\RoundStatic.cpp
.CA.... 587 2017-07-29 14:55 TestYuan\RoundStatic.h
.CA.... 137 2017-07-28 09:54 TestYuan\stdafx.cpp
.CA.... 1754 2017-07-28 16:16 TestYuan\stdafx.h
.CA.... 1863868 2017-07-29 15:02 TestYuan\TestYuan.aps
.CA.... 1811 2017-07-28 10:21 TestYuan\TestYuan.cpp
.CA.... 479 2017-07-28 10:20 TestYuan\TestYuan.h
.CA.... 35840 2017-07-29 15:05 TestYuan\TestYuan.ncb
.CA.... 5573 2017-07-29 15:02 TestYuan\TestYuan.rc
.CA.... 905 2017-07-29 14:48 TestYuan\TestYuan.sln
.CA..H. 8704 2017-07-29 15:05 TestYuan\TestYuan.suo
.CA.... 4949 2017-07-29 14:59 TestYuan\TestYuan.vcproj
.CA.... 8730 2017-07-29 14:55 TestYuan\TestYuanDlg.cpp
.CA.... 816 2017-07-28 17:12 TestYuan\TestYuanDlg.h
.CA.... 730158 2017-07-28 15:05 TestYuan\tranparentPic.png
.C.D... 0 2017-07-29 15:05 TestYuan\Debug
.C.D... 0 2017-07-29 15:00 TestYuan\res
.C.D... 0 2017-07-29 15:02 TestYuan
----------- --------- ---------- ----- ----
7766341 28
............此处省略1个文件信息
- 上一篇:基于C++的网络入侵检测系统源码
- 下一篇:SNAP7 协议说明书
相关资源
- 飞机飞行源代码VC6.0
- 印刷体文字识别VC++源程序及论文
- VC MFC CAN 通信程序支持周立功
- MFC校园导航
- C++程序编写的MFC控件的打地鼠游戏
- MFC图像直方图均衡化、锐化、中值滤
- VC++ MFC制作数字时钟、图形时钟、秒表
- 基于vc++6.0的rs232串口通信课程设计
- MFC个人通讯录管理系统
- 舒尔特方格MFC源码
- Frogs_MFCCs.csv
- 读取txt文件数据,根据数据画曲线绝
- VC++ MFC 游戏手柄Joystick 编程
- 基于员工培训管理系统
- c++ mfc客户端服务器端文件传输
- MFC实现矩阵的操作
- 简单的VC++基于MFC计算器
- 基于MFC的聊天室网络socket
- MFC实现扫雷
- 用遗传算法实现语音识别--基于mfcc参
- mfc 二维图形的变换 旋转 平移 比例
- 基于MFC简单的学生信息管理系统ODBC
- C++图书借阅系统MFC
- 通讯录设计基于MFC的个人通讯录管理
- 梁友栋barsky算法
- MFC操作excel
- mfc单文档画图,可改颜色,设置线条
- 基于MFC的个人通讯录管理系统
- C++开源超级玛丽
- mfc经典例程150例
评论
共有 条评论