zoukankan      html  css  js  c++  java
  • C++矩形图片转换为圆形图片

    转载:https://blog.csdn.net/xhlzjd/article/details/85230493

     1 bool GetCircleImage(CString strSource, CString strTarget)
     2 {
     3     Image image(strSource);
     4     Bitmap b(image.GetWidth(), image.GetHeight());
     5     Graphics g(&b);
     6     g.SetSmoothingMode(Gdiplus::SmoothingModeHighQuality);
     7     GraphicsPath p(FillModeAlternate);
     8     p.AddEllipse(0, 0, image.GetWidth(), image.GetHeight());
     9     g.FillPath(&TextureBrush(&image), &p);
    10 
    11     //获取编码器的CLSID [class id] 
    12     UINT num = 0;                     //图像编码器的数量 
    13     UINT size = 0;                    //图像编码器数组的字节数 
    14     CLSID encoderClsid;
    15     ImageCodecInfo* pICI = NULL;
    16 
    17     GetImageEncodersSize(&num, &size);//获得系统编码器的数量和大小 
    18     if (size == 0) return false;//失败 
    19 
    20     pICI = (ImageCodecInfo*)(malloc(size)); //编码器 
    21     if (pICI == NULL) return false;//失败 
    22 
    23     GetImageEncoders(num, size, pICI);    //获取编码器信息 
    24     for (UINT j = 0; j < num; ++j)
    25     {
    26         if (wcscmp(pICI[j].MimeType, L"image/png") == 0)//jpeg bmp gif tiff png 
    27         {
    28             encoderClsid = pICI[j].Clsid;
    29         }
    30     }
    31     free(pICI);
    32     Status s = b.Save(strTarget, &encoderClsid);//只有png才能保存下来透明信息
    33     return true;
    34 }

    下面是转换前后的对比图:
    C++将方形的头像转换为圆形的头像
    在这里插入图片描述
    图1 转换前(方形)

    C++将方形的头像转换为圆形的头像
    在这里插入图片描述
    图2 转换后(圆形)

  • 相关阅读:
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    《Java技术》第三次作业--面向对象——继承、抽象类、接口
  • 原文地址:https://www.cnblogs.com/Toya/p/14327664.html
Copyright © 2011-2022 走看看