简介本文介绍一个C++代码实战例子:将方形的图片转换为圆形的图片,感兴趣的朋友可以参考一下。
将方形的图片转换为圆形的图片
/**
* 将方形的图片转换为圆形的图片
*
* @param sSourcePicPath 原始图片路径
* @param sTargetPicPath 目标图片路径
*
**/
BOOL GetCircleImage(CString sSourcePicPath, CString sTargetPicPath)
{
Image image(sSourcePicPath);
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(ℑ), &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)); //编码器
if (pICI == NULL) return false;//失败
GetImageEncoders(num, size, pICI); //获取编码器信息
for (UINT j = 0; j < num; ++j)
{
if (wcscmp(pICI[j].MimeType, L"image/png") == 0)//jpeg bmp gif tiff png
{
encoderClsid = pICI[j].Clsid;
}
}
free(pICI);
Status s = b.Save(sTargetPicPath, &encoderClsid);//只有png才能保存下来透明信息
return TRUE;
}
需要包含头文件:
#include "gdiplus.h"
using namespace Gdiplus;
本文介绍一个C++代码实战例子:C++实现图片等比例缩放,感兴趣的朋友可以参考一下。
本文向大家介绍OpenGL绘制文字(支持中文),感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:Duilib实现截图截取功能并保存为jpg图片,主要涉及Duilib界面开发、截取屏幕到位图、位图保存到文件、bmp格式图片转jpg等知识,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:在Duilib窗口中使用OpenGL绘制图形示例,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍一个C++实战项目:C++基于OpenGL绘制一个随鼠标旋转长方体,并支持鼠标滚轮缩小放大,具有一定的C++实战价值,感兴趣的朋友可以参考一下。
本文向大家介绍OpenGL一个函数实现抗锯齿,感兴趣的朋友可以参考一下。