Search the web
Sign In
New User? Sign Up
AIL_Development · AIL Developer's Forum
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Message search is now enhanced, find messages faster. Take it for a spin.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Display 32-bit transparent PNG in Image control (VB)   Message List  
Reply | Forward Message #104 of 125 |
Re: Display 32-bit transparent PNG in Image control (VB)

further to this one of your previous replies has a more elegant method
than the one I just posted -

If you want to use the transparent PNG approach but don't want to
save the images to the hard drive... you can always save them to
memory-based byte arrays using the "IO_SaveToBinary" function. Then
when it's time to render that "frame"... use the "IO_LoadFromBinary"
function and then call "Convert_ImageToPicture" to convert the hIMG
image handle to a System.Drawing.Image object to set the PictureBox
control.

im struggling with the filestream bit - this is what i have - im
hoping it will return a transparent PNG for the picturebox like my
method before of saving out a file.

Dim objAIL As cAdvancedImagery
Dim hIMG As Int32
Dim objStream As System.IO.FileStream
Dim objpic As Image

objAIL = New cAdvancedImagery

If objAIL.IO_LoadImage(<<path to a TGA file>>, hIMG) = True Then
objStream = New System.IO.FileStream(<<what do i put
here???>>, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.None)
If Not objStream Is Nothing Then
If objAIL.IO_SaveToBinary(hIMG, objStream,
cAdvancedImagery.IMAGE_FORMAT.IF_PNG,
cAdvancedImagery.IMAGE_FLAGS.PNG_DEFAULT) = True Then
If objAIL.IO_LoadFromBinary(objStream, hIMG) =
True Then
MsgBox("Success")

If objAIL.Convert_ImageToPicture(hIMG, objPic)
= True Then
Return objpic
objPic = Nothing
Else
MsgBox("Error - " & objAIL.Error_GetLast)
End If



objAIL.IO_DestroyImage(hIMG)
Else
MsgBox("Error - " & objAIL.Error_GetLast)
End If
Else
MsgBox("Error - " & objAIL.Error_GetLast)
End If
objStream.Close()
objStream = Nothing
Else
MsgBox("Error opening file as stream")
End If

Else
MsgBox("Error loading image file")
End If

objAIL = Nothing


help me obi-wan!




Fri Oct 17, 2008 5:40 pm

bluescreenwe...
Offline Offline
Send Email Send Email

Forward
Message #104 of 125 |
Expand Messages Author Sort by Date

Daniel asked: "how do you load the 32-bit transparent PNG image. it shows as normal when loaded in a image box"...
Kevin Wilson
kwilson1997
Offline Send Email
Jul 26, 2008
4:16 pm

In VB5 and VB6, there's no way to load a transparent pictures into an Image control because the Image control does not have a Device Context handle (hDC)...
Kevin Wilson
kwilson1997
Offline Send Email
Jul 26, 2008
4:19 pm

I have been musing over this one for a while, as I need to display the transparency of Targa files. A picturebox in VB.net will render a 32-bit PNG correctly...
bluescreenweasel
bluescreenwe...
Offline Send Email
Oct 17, 2008
5:49 pm

further to this one of your previous replies has a more elegant method than the one I just posted - If you want to use the transparent PNG approach but don't...
bluescreenweasel
bluescreenwe...
Offline Send Email
Oct 17, 2008
5:50 pm

... method ... Keep in mind that saving to a Stream object in .NET is intended for things like pushing a custom image over the internet or network via an open...
Kevin Wilson
kwilson1997
Offline Send Email
Oct 17, 2008
6:59 pm

Great stuff kevin, many thanks. I guess i had the wrong idea about what filestreams were there. I couldn't work out why it asked for a file location string! ...
bluescreenweasel
bluescreenwe...
Offline Send Email
Oct 21, 2008
1:58 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help