如何使用GDI+制作圆形图片(类似QQ头像)

时间:2022-08-29 08:24:18

一直在CSDN学习,下载了很多资源,没有上传过什么资料,今天也为大家做个小小贡献

很多软件和APP都用了圆形图像,也想当的好看,最近公司项目要用到这个小东西,花了半天时间搞了出来。

(c#只用了几分钟就做出来了,下面贴C#算法)

http://www.cnblogs.com/wjshan0808/p/5909174.html参考的这个兄弟的算法

 private void Form1_Load(object sender, EventArgs e)
{
string file =System.IO.Path.Combine(Environment.CurrentDirectory, @"11.jpg");
try
{
Image i
= new Bitmap(file);
pbO.Image
= i;

pbD1.Image
= WayOne(file);
pbD2.Image
= WayTwo(file);

pbS1.Image
= WaySOne(file);
pbS2.Image
= WaySTwo(file);

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private Bitmap WayOne(string file)
{
using (Image i = new Bitmap(file))
{
Bitmap b
= new Bitmap(i.Width, i.Height);
using (Graphics g = Graphics.FromImage(b))
{
g.FillEllipse(
new TextureBrush(i), 0, 0, i.Width, i.Height);
}
return b;
}
}


好的,C#成功了,效果图:
如何使用GDI+制作圆形图片(类似QQ头像)
C#挺简单的,是吧。
下面主要是贴C++的代码,我们知道,C#也是用的GDI+做的,那么C++肯定也能用啦。
我们做的事情是移植到C++
中间遇到过一些困难,比如new Bitmap之类的等等
直接贴代码吧
bool CRoundStatic::LoadFile(CString szDile)
{
CString file=szDile;
//方法一
Image image(file);
Bitmap b(image.GetWidth(),image.GetHeight());
Graphics g(&b);
g.FillEllipse(&TextureBrush(&image), 0, 0, image.GetWidth(), image.GetHeight());
return true;
}
是不是很简单啦,为什么用了半天,是因为GDI+的头文件没有加到项目中,看不到.后的方法,不太方便。
最后效果
如何使用GDI+制作圆形图片(类似QQ头像)
 
项目下载地址:(其实上传了资源到CSDN的,无奈半天不出来,先用腾讯微云地址凑合下,下次再重新编辑)
https://share.weiyun.com/510d309f9f7e7505b18e8b41345bc8e6
好了,CSDN链接出来了,不需要积分
http://download.csdn.net/download/xjb2006/9914789

最后打个广告,8年前开发的《零度屏幕录像软件》最新发布了V11.0,欢迎大家下载看看,顺便提点意见
http://zxcvbnm555666.blog.163.com/blog/static/8027484201762744113771/