原生的VB6不支持PNG个图片,因为刚有VB的时候还没有PNG的概念呢。不过,利用GDI+加载解析个PNG简直是砍瓜切菜般简单。

GDI+的模块是我在网上下载的,地址应该是:http://vistaswx.com/blog/article/gdip-tutorial-6-image

上代码:

 'code by lichmama from cnblogs.com
'@vb6.0 gdi+ png
Private Sub DrawPng(ByVal pngfile As String, _
Optional Left As Long = &, _
Optional Top As Long = &, _
Optional zoom As Single = #) Dim Graphic As Long
Dim Image As Long
Dim imgWidth As Long
Dim imgHeight As Long Call GdipCreateFromHDC(Me.hDC, Graphic)
Call GdipSetSmoothingMode(Graphic, SmoothingModeAntiAlias)
Call GdipLoadImageFromFile(StrPtr(pngfile), Image)
Call GdipGetImageWidth(Image, imgWidth)
Call GdipGetImageHeight(Image, imgHeight)
Call GdipDrawImageRect(Graphic, Image, & + Left, & + Top, imgWidth * zoom, imgHeight * zoom) Call GdipDisposeImage(Image)
Call GdipDeleteGraphics(Graphic)
End Sub Private Sub Command1_Click()
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-tulio-icon-2.png", -&, -&)
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-linda-icon-2.png", &)
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-logo.png", , &, 0.5)
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-kids-icon.png", &, &, 0.25)
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-nico-&-pedro-icon.png", &, &, 0.25)
Call DrawPng("D:\迅雷下载\rio-2-icons\rio-2-luiz-icon.png", &, &, 0.25)
End Sub Private Sub Form_Load()
Call InitGDIPlus
End Sub Private Sub Form_Unload(Cancel As Integer)
Call TerminateGDIPlus
End Sub

贴张图:

从资源文件加载PNG:

Private Function GdipCreateImageFromStream(ByVal resid As Integer, _
ByVal restype As String) As Long Dim Image As Long
Dim ResData() As Byte
Dim IStream As Object
Dim hGlobal As Long
Dim pMem As Long ResData = LoadResData(resid, restype)
hGlobal = GlobalAlloc(GMEM_MOVEABLE, UBound(ResData) + )
pMem = GlobalLock(hGlobal)
If pMem = Then
Debug.Print "Global Alloc Failed."
Erase ResData
Exit Function
End If
Call RtlMoveMemory(ByVal pMem, ResData(), UBound(ResData) + )
Call GlobalUnlock(hGlobal)
Call CreateStreamOnHGlobal(hGlobal, False, IStream)
Call GdipLoadImageFromStream(IStream, Image) Set IStream = Nothing
Call GlobalFree(hGlobal)
GdipCreateImageFromStream = Image
End Function
Private Sub Command1_Click()
Dim Graphics As Long
Dim Image As Long Call GdipCreateFromHDC(Me.hDC, Graphics)
Call GdipSetSmoothingMode(Graphics, SmoothingModeAntiAlias)
'调用方式如下
Image = GdipCreateImageFromStream(, "PNG")
Call GdipDrawImage(Graphics, Image, &, &) Call GdipDisposeImage(Image)
Call GdipDeleteGraphics(Graphics)
End Sub

贴张图:

VB6之GDI+加载PNG图片的更多相关文章

  1. win32用GDI+加载png图片作为背景图

    #include <windows.h> #include <gdiplus.h> /* GDI+ startup token */ ULONG_PTR gdiplusStar ...

  2. GDI+ 加载PNG图片

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

  3. VC中使用GDI+实现为按钮加载Png图片

    http://blog.csdn.net/flyfish1986/article/details/5381605 VC中使用GDI+实现为按钮加载Png图片 http://www.codeprojec ...

  4. WebView加载HTML图片大小自适应与文章自动换行

    http://www.brighttj.com/ios/ios-webview-load-html-image-adaptive.html 在很多App中都会使用到webview,尤其是在加载新闻内容 ...

  5. Android ListView 图片异步加载和图片内存缓存

    开发Android应用经常需要处理图片的加载问题.因为图片一般都是存放在服务器端,需要联网去加载,而这又是一个比较耗时的过程,所以Android中都是通过开启一个异步线程去加载.为了增加用户体验,给用 ...

  6. WPF中加载高分辨率图片性能优化

    在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: < ...

  7. Fresco 使用笔记(一):加载gif图片并播放

    项目总结 --------------------------------------------------------------------- 前言: 项目中图文混合使用的太多太多了,但是绝大部 ...

  8. 图片_ _Android有效解决加载大图片时内存溢出的问题 2

    Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...

  9. Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子

    Delphi7 第三方控件1stClass4000的TfcImageBtn按钮控件动态加载jpg图片例子 procedure TForm1.Button1Click(Sender: TObject); ...

随机推荐

  1. 点击空白处隐藏指定dom元素(纯javascript方法)

    <script type="text/javascript"> document.onclick = function (event) { event = event ...

  2. javascript基础-性能优化

    优化点 性能检测 基调网络 http://www.cesule.com/cesule/status/show/3496d91653a14743af2bd2e261aee204 阿里测 http://a ...

  3. Configure Always On Availability Group for SQL Server on RHEL——Red Hat Enterprise Linux上配置SQL Server Always On Availability Group

    下面简单介绍一下如何在Red Hat Enterprise Linux上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的 ...

  4. linux切换g++

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50(优先级) sudo update-alternative ...

  5. Spring学习(7)--- @Required注解

    @Required注解是用于bean属性的setter方法 这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在bean定义胡通过自动装配一个明确的属性值 package com.mypa ...

  6. 定期清空log文件

    # auto-del-log.sh #!/bin/shfor i in `find . -name "*.out" -o -name "*.log"`do  c ...

  7. 安装xampp出错,安装xampp出错,windows找不到-n ?

    安装路径错误的问题 安装参考路径:D:\xampp\子文件

  8. PHP代理访问网络资源

    第一种:使用DOMDocument  <? PHP $doc = new \DOMDocument(); $opts = array(     'http' => array(       ...

  9. 用css控制字数,多余的用省略号代替

    选择器 { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100px; } white-space 属性 ...

  10. MVC启动windows身份验证时初次访问特别慢

    最近做了一个关于MVC的项目,刚开始往服务器上面部署时,没有开启windows身份验证,等开发基本收尾时候,将验证开启时,第一次打开的时候需要将近15s的访问时间,别说用户受不了,自己都受不了了. 对 ...