VB6.0载入PNG格式图片

如题,求大神指教。不直接载入到窗口上,我需要放到frame或Picture中。有控件的大神麻烦上传一下,确定能使用后必定采纳。如果能用代码实现最好不过。各位大神不要藏着掖... 如题,求大神指教。
不直接载入到窗口上,我需要放到frame或Picture中。
有控件的大神麻烦上传一下,确定能使用后必定采纳。
如果能用代码实现最好不过。
各位大神不要藏着掖着,分享一下呗。
跪谢~~~~
展开
 我来答
149005501
2014-04-09 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

给你一个示例吧,显示PNG到FORM上,用GDI的:

Private Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As GpStatus
Private Declare Sub GdiplusShutdown Lib "gdiplus" (ByVal token As Long)
Private Declare Function GdipCreateFromHDC Lib "gdiplus" (ByVal hwnd As Long, graphics As Long) As GpStatus
Private Declare Function GdipDeleteGraphics Lib "gdiplus" (ByVal graphics As Long) As GpStatus
Private Declare Function GdipDrawImageRect Lib "gdiplus" (ByVal graphics As Long, ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As GpStatus
Private Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal filename As String, image As Long) As GpStatus
Private Declare Function GdipGetImageWidth Lib "gdiplus" (ByVal image As Long, Width As Long) As GpStatus
Private Declare Function GdipGetImageHeight Lib "gdiplus" (ByVal image As Long, Height As Long) As GpStatus
Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As GpStatus
Private Type GdiplusStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
End Type
Private Enum GpStatus
    Ok = 0
    GenericError = 1
    InvalidParameter = 2
    OutOfMemory = 3
    ObjectBusy = 4
    InsufficientBuffer = 5
    NotImplemented = 6
    Win32Error = 7
    WrongState = 8
    Aborted = 9
    FileNotFound = 10
    ValueOverflow = 11
    AccessDenied = 12
    UnknownImageFormat = 13
    FontFamilyNotFound = 14
    FontStyleNotFound = 15
    NotTrueTypeFont = 16
    UnsupportedGdiplusVersion = 17
    GdiplusNotInitialized = 18
    PropertyNotFound = 19
    PropertyNotSupported = 20
End Enum

'主要代码就下面这几句而已.
Private Const c_pngPath As String = "C:\1.png"   '要显示的图片名称和路径。
Dim m_token As Long
Private Sub Form_paint() ‘Form上显示
     Dim pImg As Long
     Dim pGraphics As Long
     Dim w As Long, h As Long
    
     Call GdipCreateFromHDC(Me.hDC, pGraphics)
     Call GdipLoadImageFromFile(StrConv(c_pngPath, vbUnicode), pImg)
     Call GdipGetImageWidth(pImg, w)
     Call GdipGetImageHeight(pImg, h)
     Call GdipDrawImageRect(pGraphics, pImg, 0, 0, w, h)
    
     Call GdipDisposeImage(pImg)
     Call GdipDeleteGraphics(pGraphics)
End Sub
Private Sub Form_Load()
     Dim StartupInput As GdiplusStartupInput
     StartupInput.GdiplusVersion = 1
     If GdiplusStartup(m_token, StartupInput, ByVal 0) Then
             MsgBox "Error initializing GDI+"
             Exit Sub
     End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
     Call GdiplusShutdown(m_token)
End Sub
更多追问追答
追问
哥们,这段代码我知道,他是显示在窗体上的,不是我需要的。
最好是单独的一个控件,能够显示PNG图片
或者去掉JPG图片的背景白底
追答
如果不显示在窗体上,修改下就行了,下面是显示在picturebox1控件里:

Private Sub picturebox1_paint() ‘Form上显示
...
Call GdipCreateFromHDC(Me.picturebox1.hDC, pGraphics)

但去背景的话,要你自己定义背景的色,我再找找
博思aippt
2024-07-20 广告
**AI一键生成PPT免费版**为满足广大用户的需求,我们博思云创科技特推出AI一键生成PPT免费版。用户只需简单输入需求,AI技术便能智能分析并快速生成高质量PPT。此版本功能强大且易于操作,无需专业设计技能,即可轻松打造出令人满意的演示... 点击进入详情页
本回答由博思aippt提供
百度网友85f366cb43
2014-04-08 · TA获得超过781个赞
知道小有建树答主
回答量:920
采纳率:61%
帮助的人:458万
展开全部
追问
好复杂啊,看的眼睛都花了!
哥们,能不能帮忙简化一下。
我只需要能够显示PNG格式的控件就行了
不需要其他功能!
麻烦您了。
不用别的控件也可以,只要能吧图片的白底去掉就行!
我可以换成JPG格式的
最好是操作简单一点的,因为东西比较多,弄起来很麻烦。
拜托你了,我加分!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式