原生的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. 微信小程序大全(下)(最新整理 建议收藏)

  2. iOS UIAlertView 文字对其方式 文字大小 设置方法

    - (void) willPresentAlertView:(UIAlertView *)alertView { for (UIView *subViewin alertView.subviews) ...

  3. 开涛spring3(12.1) - 零配置 之 12.1 概述

    12.1  概述 12.1.1  什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web ...

  4. 开涛spring3(5.4) - Spring表达式语言 之 5.4在Bean定义中使用EL

    5.4.1  xml风格的配置 SpEL支持在Bean定义时注入,默认使用“#{SpEL表达式}”表示,其中“#root”根对象默认可以认为是 ApplicationContext,只有Applica ...

  5. javase基础回顾(四) 自定义注解与反射

    本篇文章将从元注解.自定义注解的格式.自定义注解与反射结合的简单范例.以及自定义注解的应用来说一说java中的自定义注解. 一.元注解 元注解也就是注解其他注解(自定义注解)的java原生的注解,Ja ...

  6. 磁盘分区-gdisk用法

    gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-modemenu ...

  7. HTML中部分标签的嵌套问题

    书写HTML结构的时候,对于标签的嵌套问题,在我发现这个问题之前,都不在自己的考虑之中,还傻傻的以为标签之间是可以进行百搭的! 其实,有些标签是不能进行随意嵌套,如果你没有深受其害,你是不会发现它的存 ...

  8. python读写文件相关内容

    1.python读取文件 f = open('E:/info.txt', 'r')#用read的方式打开a = 0for line in f.readlines():读取没一行,就是读取所有文件的意思 ...

  9. Django Nginx反代 获取真实ip

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Andale Mono"; color: #28fe14; backgr ...

  10. 高性能迷你React框架anu在低版本IE的实践

    理想是丰满的,现实是骨感的,react早期的版本虽然号称支持IE8,但是页面总会不自觉切换到奇异模式下,导致报错.因此必须让react连IE6,7都支持,这才是最安全.但React本身并不支持IE6, ...