1:制作透明图片文件;

GDI+ 支持32位位图文件,所以自然就支持图片透明了;

首先:建立一个32位位图文件在内存中,将文件刷新为透明格式;

其次:在这个内存32位位图文件上作图;

最后:保存这个32位位图文件为指定格式的图片:

例子如下:在透明位图文件上作图,然后保存问题png格式文件:

#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib, "Gdiplus")

int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
 UINT  num = 0;          // number of image encoders
 UINT  size = 0;         // size of the image encoder array in bytes

ImageCodecInfo* pImageCodecInfo = NULL;

GetImageEncodersSize(&num, &size);
 if(size == 0)
  return -1;  // Failure

pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
 if(pImageCodecInfo == NULL)
  return -1;  // Failure

GetImageEncoders(num, size, pImageCodecInfo);

for(UINT j = 0; j < num; ++j)
 {
  if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
  {
   *pClsid = pImageCodecInfo[j].Clsid;
   free(pImageCodecInfo);
   return j;  // Success
  }   
 }

free(pImageCodecInfo);
 return -1;  // Failure
}

{

GdiplusStartupInput gdiplusStartupInput;
 ULONG_PTR           gdiplusToken;
 GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

//1:建立透明内存32位位图文件;
 Bitmap bmp( 1000,1000, PixelFormat32bppARGB );

//2:刷新32位位图文件为透明;
 Graphics g( &bmp );

Color   myColor(0, 0,0,0 ); 
 g.Clear( myColor );

//3:作图:

g.DrawLine( &Pen(Color::Black), 0,0,100,100);

//4: 显示:

Graphics gwnd(this->m_hWnd);
 gwnd.DrawImage( &bmp, 0,0);

//5:保存为png图片:
  CLSID pngClsid;
  GetEncoderClsid(L"image/png", &pngClsid);
  bmp.Save(L"F:\\Mosaic2.png", &pngClsid, NULL);

}

2:将指定位图颜色透明:

1:建立一个32位位图文件在内存中,将指定位图刷新到32为位图文件上;

2:获取像素点值GetPixel,如果是指定的颜色,设置为透明像素点colorPixel.SetValue( Color::MakeARGB(0,0,0,0) ); SetPixel;

3:保存图片;

注:windows图片查看器,无法产看32位位图透明图片,它会将透明度值取消显示;

但GDI+可以显示32位位图文件;而且其他图片编辑软件可以查看;

GDI+ 制作透明图片相关推荐

  1. 001-ps怎么制作透明图片

    ps怎么制作透明图片 应用场景:最近签署文件需要手写签名,正好笔记本上装的有PS-想到了用PS的画笔

  2. 制作透明图片,并为视频批量添加上PNG格式图片

    如何制作一张PNG格式的透明图片水印,并给多个视频添加上呢?其实操作的方法很简单,下面随小编一起来操作. 材料准备: 一台电脑 安装一个视频剪辑高手 下载一个Photoshop 多张图片以及视频素材 ...

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

    一直在CSDN学习,下载了很多资源,没有上传过什么资料,今天也为大家做个小小贡献 很多软件和APP都用了圆形图像,也想当的好看,最近公司项目要用到这个小东西,花了半天时间搞了出来. (c#只用了几分钟 ...

  4. PS制作透明的BMP图片

    PNG制作透明图片是 很容易的,而且不失真. 但是BMP所谓的透明,我不认为是真正意义上的透明 因为: 1,我见的BMP图片背景是粉红色的,但是加载在某些控件上后,类似透明 2 ,我见的BMP图片的背 ...

  5. 用“掩码位图“,制作类似.png的“透明图片“①

    目录 前言 掩码位图的制作 ​ 前言 因为要给我原神版的飞机大战导入图片,所以需要使用透明图片作为飞机的素材. 一般来说,我们会制作.png格式或者.psd格式的透明图片,但我制作完毕并将其贴到窗口时 ...

  6. 教你如何利用灰度图透明效果制作隐藏图片.part1

    #更新 使用深色图片简单实现隐藏图片二不需要网格抠图 http://blog.csdn.net/chenzhuyu/article/details/54766757 #效果图: 在QQ聊天的时候,图片 ...

  7. 教你如何利用灰度图透明效果制作隐藏图片.Part2

    前言 文章http://blog.csdn.net/chenzhuyu/article/details/52483394 中介绍了利用像素交替+蒙版的方法制作隐藏图片 实现在QQ界面中,预览与查看显示 ...

  8. 计算机电脑水晶字制作图片,电脑技巧收藏家photoshop技巧Photoshop教程:制作透明水晶字(3)...

    Photoshop教程:制作透明水晶字(3) 步骤3 设置"颜色叠加" 跟着进行第二步的设置.用鼠标选中[图层样式]对话框左边的"颜色叠加"选项,然后在选项区域 ...

  9. 【转】C#使用GDI+制作背景颜色淡入淡出效果的按钮

    C#使用GDI+制作背景颜色淡入淡出效果的按钮 2010-04-14  来自:CNBLOG  字体大小:[大 中 小] 摘要:本文介绍C#使用GDI+制作背景颜色淡入淡出效果的按钮,并提供完整的示例和 ...

最新文章

  1. HTML的标签描述22
  2. cinder与ceph的区别_分布式存储基础、Ceph、cinder及华为软件定义的存储方案 -
  3. word如何(以标题)另起一页(段落 --> 换行和分页 --> 段前分页)
  4. linux——DHCP的配置问题
  5. VTK:随机探针用法实战
  6. 面试官问我:如何减少客户对交付成果的质疑
  7. mysql invalid default value_mysql5.x升级到5.7 导入数据出错,提示Invalid default value for...
  8. struts集成spring官方例子
  9. 华为集齐 AI 龙珠,“召唤神龙”为期不远
  10. linux内存管理---虚拟地址、逻辑地址、线性地址、物理地址的区别(一)
  11. 判断一个字符串的字符是不是唯一
  12. Profiler中WaitForTargetFPS详解【转】
  13. python+selenium实战搭建PO模型
  14. Unity3d制作2D游戏飞翔的小鸟(FlappyBird)
  15. API(15)——打印系统开发(52)——WinForm开发(62)——C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  16. TASK SCHEDULE(任务计划)服务无法运行 解决方案
  17. oracle--13集合
  18. 新一代zData数据库一体机和ZDBM数据备份与恢复一体机正式发布
  19. Java面向对象常见概念
  20. 电源系列2:LDO 基本 原理(二)

热门文章

  1. Unity Super TileMap Editor使用帮助翻译
  2. SQLiteSpy下载安装
  3. 网站服务器端口扫描,服务器端口扫描工具
  4. dp 母函数 入门 + 模板
  5. Excel学习日记:L19-定义名称Indirect函数下拉选单设定
  6. PN结——“耗尽层”?
  7. JQuery学习之路Part8:家族树操作(查找祖先、后代、兄弟同胞、绝对查找)【完结】
  8. 常用的web服务器有哪些
  9. 第三方百度地图-----展示所在位置显示小圆点
  10. 第21届国际足联世界杯观后感