在写一个用GDI+代替VB的Line函数的方法时,遇到了一个问题。

GdipCreateSolidFill

参数
color
[in]ARGB颜色,指定此实体画笔的初始颜色。
brush
[out]指向接收到新创建的SolidBrush对象的指针的变量的指针。
返回值
如果函数成功,则返回Ok,它是状态枚举的一个元素。
如果函数失败,它返回状态枚举的其他元素之一。 

在得到ARGB值这一点出现了问题。

我当时以为很简单的HEX(ARGB)就能解决结果我就错了。

查阅了很多时间,才知道原来要分开来转换。

1 ARGB有四个值:
2
3 透明度 红色值 绿色值 蓝色值
4
5 于是我做了一个函数来解决:
Public Function ARGB(alpha As Integer, red As Integer, green As Integer, blue As Integer) As Long
'ARGB(透明度,红色,绿色,蓝色)If alpha > 255 Or red > 255 Or green > 255 Or blue > 255 Then'大于255 返回0ARGB = 0: Exit FunctionEnd IfDim S_a As String, S_r As String, S_g As String, S_b As String, S_16 As StringS_a = Hex(alpha): S_r = Hex(red): S_g = Hex(green): S_b = Hex(blue)
'由于十六进制ARGB是以两位数为一个值的。
'当字符个数为1时前面加0补充If Len(S_a) < 2 Then S_a = "0" & S_aIf Len(S_r) < 2 Then S_r = "0" & S_rIf Len(S_g) < 2 Then S_g = "0" & S_gIf Len(S_b) < 2 Then S_b = "0" & S_bS_16 = "&H" & S_a & S_r & S_g & S_b
'ARGB=&H FFFF FFFF
ARGB = Val(S_16)
End Function

虽然很简单的一个东西,但是百度上对ARGB的介绍极少,导致浪费了我不少的时间,所以建一篇帖子谨记。

 

  

 

转载于:https://www.cnblogs.com/lingqingxue/p/10362639.html

GDI+_VB6_ARGB相关推荐

  1. 戏说 .NET GDI+系列学习教程(三、Graphics类的应用_验证码)

    关于Graphics也有了基本了解下面想说的的是学这个东东干什么呢,到底如何应用 目前常见应用 1.验证码(参照网上的) 2.打印排版(会提到关于条形码大小设置) 3.自定义控件 一.验证码 1 cl ...

  2. 在.net中使用GDI+来提高gif图片的保存画质

    //本文章有www.blue1000.com翻译,原文地址http://codebetter.com/blogs/brendan.tompkins/archive/2004/01/26/6103.as ...

  3. 一种使用GDI+对图片尺寸和质量的压缩方法

    今天同事向我询问图片压缩的算法,我想起大概两三年前做过的一个项目.其中包含了尺寸和质量两种压缩算法,并且支持JPEG.bmp.PNG等格式.今天把这段逻辑贴出来,供大家参考.(转载请指明来源于brea ...

  4. GDI+ Bitmap与WPF BitmapImage的相互转换

    原文:GDI+ Bitmap与WPF BitmapImage的相互转换 using System.Windows.Interop; //... // Convert BitmapImage to Bi ...

  5. 【转载】gdi+ 内存泄漏

    [转载]http://issf.blog.163.com/blog/static/1941290822009111894413472/ 最近用GDI+实现了几个自定义控件,但是发现存在内存泄露问题 B ...

  6. Direct2D开发:Direct2D 和 GDI 互操作性概述

    本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页).有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标, ...

  7. 使用bitblt提高GDI+绘图的效率(转)

    最近在做使用GDI+绘制K线界面发现传统的GDI+绘制方式效率比较低,根本无法满足K线界面及时刷新的速度要求. 所以做了个GDI+绘制图形界面的试验,改试验主要在一个600×600的区域内每隔10MS ...

  8. 在GDI+中用Mattix类对2D矢量图形进行平移、缩放操作

    在GDI+中用Mattix类对2D矢量图形进行平移.缩放操作 1.    GDI+中点坐标的格式及矩阵乘法的定义 GDI+中的的点按照1行3列的格式,即(x坐标,y坐标,1),其中1为哑元坐标.变换矩 ...

  9. GDI+编程说明及小结

    原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...

  10. GDI+ 中发生一般性错误(生成验证码时出现的错误)

    我在生成验证码时,出现这样的错误:GDI+ 中发生一般性错误. 怎么解决? 转载于:https://www.cnblogs.com/happyangle/archive/2008/06/11/1217 ...

最新文章

  1. jsapi设计_一个简单API设计
  2. dbvis 数据库连接工具-更新数据库驱动方法示例演示,驱动与数据库版本不匹配问题:Unknown system variable ‘query_cache_size‘解决方法
  3. [JZOJ5281]钦点题解--瞎搞+链表
  4. bootstrap --- 鼠标停留提示事件
  5. gRPC .NET Core跨平台学习
  6. C++11智能指针处理Array对象
  7. 基础DNS服务 轮训与泛域名解析
  8. Url重写——伪静态实现
  9. 最新苹果CMSV10视频电影网站源码+自适应手机版
  10. * Redis —— Scan、SScan、HScan、ZScan
  11. VS2017各版本区别
  12. 【C语言】实现网络对战五子棋
  13. Yamaha Vocaloid 5.6.2 x64 WiN 歌声合成器
  14. OPNsense - 多功能高可靠易使用的防火墙(二)
  15. 百度主页被“/?tn=88093251_85_hao_pg“劫持的一种解决办法
  16. 绍兴一中信心赛 T1排列
  17. rjs子模板中如何按照顺序并且有序列地执行语句
  18. 设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
  19. 你为什么跳槽?真正原因找到了吗?
  20. 核心之外的8个必备Maven插件

热门文章

  1. BGP过滤器原理和实验(华为设备)
  2. ELK详解(十四)——Logstash TCP/UDP日志收集
  3. Linux SSHD服务安装与维护详解(一)——SSHD安装、启动与密钥认证实现
  4. 9-Shell的逻辑操作符知识介绍-实践及企业案例脚本剖析
  5. 【BZOJ3942】Censoring [KMP]
  6. XJOI网上同步训练DAY6 T2
  7. TABLE与DIV的取舍
  8. MYSQL 索引事务日志概述
  9. 部署Symantec Antivirus 10.0网络防毒服务器之二
  10. Visual Studio 2010 (ASP.Net 4.0)新功能一览(转载)