Home All Groups Group Topic Archive Search About

WIA.ImageFile to System.Drawing.Image

Author
5 Jan 2006 12:43 AM
Jeremy
I am creating an imaging service using WIA (Windows Imaging
Acquisition).

The problem is that I cannot convert a WIA.ImageFile to a
System.Drawing.Image to put a timestamp on the image without first
saving the file using the wia.imagefile.savefile then loading it again
using System.Drawing.Image.FromFile. This seems pretty ineffecient. I
have tried coverting it using ctype, but I get an invalid cast
exception. Is anyone aware of how to accomplish this without saving and
reloading the file? I appreciate your time...

Thanks,
Jeremy

        Dim mydevice As WIA.Device
        Dim manager As New WIA.DeviceManagerClass
        Dim mydialog As New WIA.CommonDialogClass
        Dim strcmdTakePicture As String =
WIA.CommandID.wiaCommandTakePicture
        Dim strImageformat As String = WIA.FormatID.wiaFormatJPEG
        Dim myItem As WIA.Item
        Dim myImage As WIA.ImageFile
        Dim strFilePath As String = Application.StartupPath &
"\Images\Dummy.jpg"

        For Each info As WIA.DeviceInfo In manager.DeviceInfos
            'Connect w/o dialog
            If info.DeviceID =
"{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" Then
                mydevice = info.Connect
            End If
        Next

        If IsNothing(mydevice) Then
            mydevice =
mydialog.ShowSelectDevice(WIA.WiaDeviceType.VideoDeviceType, False,
True)
        End If

        myItem = mydevice.ExecuteCommand(strcmdTakePicture)

        myImage = CType(myItem.Transfer(strImageformat), WIA.ImageFile)

        'Need to covert to image here instead of SaveFile
        myImage.SaveFile(strFilePath)

Author
5 Jan 2006 1:00 AM
Ken Tucker [MVP]
Hi,

        Maybe this will help

http://msdn.microsoft.com/coding4fun/someassemblyrequired/lookatme/default.aspx

Ken
--------------
Show quoteHide quote
"Jeremy" <slayer3***@hotmail.com> wrote in message
news:1136421784.435200.21180@g44g2000cwa.googlegroups.com...
>I am creating an imaging service using WIA (Windows Imaging
> Acquisition).
>
> The problem is that I cannot convert a WIA.ImageFile to a
> System.Drawing.Image to put a timestamp on the image without first
> saving the file using the wia.imagefile.savefile then loading it again
> using System.Drawing.Image.FromFile. This seems pretty ineffecient. I
> have tried coverting it using ctype, but I get an invalid cast
> exception. Is anyone aware of how to accomplish this without saving and
> reloading the file? I appreciate your time...
>
> Thanks,
> Jeremy
>
>        Dim mydevice As WIA.Device
>        Dim manager As New WIA.DeviceManagerClass
>        Dim mydialog As New WIA.CommonDialogClass
>        Dim strcmdTakePicture As String =
> WIA.CommandID.wiaCommandTakePicture
>        Dim strImageformat As String = WIA.FormatID.wiaFormatJPEG
>        Dim myItem As WIA.Item
>        Dim myImage As WIA.ImageFile
>        Dim strFilePath As String = Application.StartupPath &
> "\Images\Dummy.jpg"
>
>        For Each info As WIA.DeviceInfo In manager.DeviceInfos
>            'Connect w/o dialog
>            If info.DeviceID =
> "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" Then
>                mydevice = info.Connect
>            End If
>        Next
>
>        If IsNothing(mydevice) Then
>            mydevice =
> mydialog.ShowSelectDevice(WIA.WiaDeviceType.VideoDeviceType, False,
> True)
>        End If
>
>        myItem = mydevice.ExecuteCommand(strcmdTakePicture)
>
>        myImage = CType(myItem.Transfer(strImageformat), WIA.ImageFile)
>
>        'Need to covert to image here instead of SaveFile
>        myImage.SaveFile(strFilePath)
>
Author
5 Jan 2006 7:49 AM
Jeremy
Thanks for your reply Ken. Actually this is one resource I used to
learn WIA. In the example however, he simply saves the file. I want to
convert it to a System.Drawing.Image first so I can alter the image
(add a time stamp). You can not programatically alter a wia.imagefile.
I was hoping someone could assist me in coverting a wia.imagefile to a
drawing.image without saving and reloading the file. Dim bmap as Image
= ctype(MyWiaImage,Image) causes an invalid cast exception.