public Stream GetPropertyBuffer(
object item,
string propertyIdName,
WiaPropertyId propertyId
)
Public Function GetPropertyBuffer( _
ByVal item As Object, _
ByVal propertyIdName As String, _
ByVal propertyId As WiaPropertyId _
) As Stream
public:
Stream^ GetPropertyBuffer(
Object^ item,
String^ propertyIdName,
WiaPropertyId propertyId
)
item
Handle to the item which represents the item having the property. You can retrieve this parameter by either calling the GetRootItem method to get the device's root item itself or by enumerating the child items of the device through a call to EnumChildItems method.
propertyIdName
This string should contain the equivalent property Id string for the WIA property ID. Use the GetPropertyIdString method to get this string for the property ID.
If you passed null for this parameter, then the WIA toolkit will use the property ID passed through the third parameter,
propertyId
The property ID for the value being sought. For a list of available property IDs, see WiaPropertyId.
This parameter is required only if the second parameter, propertyIdName, is null; otherwise, you can pass 0 for this parameter.
The WIA property buffer value.
Any WIA property of type WiaVariableTypes.UI1 or WiaVariableTypes.Vector (for example, WiaPropertyId.CameraItemThumbnail, WiaPropertyId.ScannerDevicePadColor , ...etc) returns a Stream. In order to retrieve this type of buffer you need to call the function GetPropertyBuffer.
For more information, refer to Managing WIA Sources.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Wia;
WiaSession myWiaSession;
public void GetPropertyBufferExample(IntPtr parent)
{
if (!WiaSession.IsAvailable(WiaVersion.Version1))
{
MessageBox.Show("WIA version 1.0 not installed.");
return;
}
myWiaSession = new WiaSession();
myWiaSession.Startup(WiaVersion.Version1);
DialogResult res = myWiaSession.SelectDeviceDlg(parent, WiaDeviceType.StreamingVideo, WiaSelectSourceFlags.NoDefault);
if (res != DialogResult.OK)
{
MessageBox.Show("Error selecting WIA device.");
myWiaSession.Shutdown();
return;
}
object rootItem = myWiaSession.GetRootItem(null);
if (rootItem != null)
{
myWiaSession.EnumItemsEvent += new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent2);
myWiaSession.EnumChildItems(rootItem);
myWiaSession.EnumItemsEvent -= new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent2);
}
myWiaSession.Shutdown();
}
void wiaSession_EnumItemsEvent2(object sender, WiaEnumItemsEventArgs e)
{
if (e.Item != null)
{
// Read the camera item thumbnail property.
Stream stream = myWiaSession.GetPropertyBuffer(e.Item, null, WiaPropertyId.CameraItemThumbnail);
// Read the camera thumbnail width property.
int nWidth = myWiaSession.GetPropertyLong(e.Item, null, WiaPropertyId.CameraItemThumbWidth);
// Read the camera thumbnail height property.
int nHeight = myWiaSession.GetPropertyLong(e.Item, null, WiaPropertyId.CameraItemThumbHeight);
int userDataLen = (int)stream.Length;
byte[] userData = new byte[userDataLen];
stream.Read(userData, 0, userDataLen);
using (RasterImage thumbImage = new RasterImage(
RasterMemoryFlags.User,
nWidth,
nHeight,
24,
RasterByteOrder.Bgr,
RasterViewPerspective.LeftTop,
null,
userData,
userDataLen))
{
using (RasterCodecs codecs = new RasterCodecs())
{
codecs.Save(thumbImage, Path.Combine(LEAD_VARS.ImagesDir, "WiaThumb.jpg"), RasterImageFormat.Jpeg, 24);
}
}
myWiaSession.FreeItem(e.Item);
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images";
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Wia
Dim myWiaSession As WiaSession
<TestMethod()> _
Public Sub GetPropertyBufferExample(ByVal parent As IntPtr)
If (Not wiaSession.IsAvailable(WiaVersion.Version1)) Then
MessageBox.Show("WIA version 1.0 not installed.")
Return
End If
myWiaSession = New WiaSession()
myWiaSession.Startup(WiaVersion.Version1)
Dim res As DialogResult = myWiaSession.SelectDeviceDlg(parent, WiaDeviceType.StreamingVideo, WiaSelectSourceFlags.NoDefault)
If res <> DialogResult.OK Then
MessageBox.Show("Error selecting WIA device.")
myWiaSession.Shutdown()
Return
End If
Dim rootItem As Object = myWiaSession.GetRootItem(Nothing)
If Not rootItem Is Nothing Then
AddHandler myWiaSession.EnumItemsEvent, AddressOf session_EnumItemsEvent2
myWiaSession.EnumChildItems(rootItem)
RemoveHandler myWiaSession.EnumItemsEvent, AddressOf session_EnumItemsEvent2
End If
myWiaSession.Shutdown()
End Sub
Private Sub session_EnumItemsEvent2(ByVal sender As Object, ByVal e As WiaEnumItemsEventArgs)
If Not IsNothing(e.Item) Then
' Read the camera item thumbnail property.
Dim stream As Stream = myWiaSession.GetPropertyBuffer(e.Item, Nothing, WiaPropertyId.CameraItemThumbnail)
' Read the camera thumbnail width property.
Dim nWidth As Integer = myWiaSession.GetPropertyLong(e.Item, Nothing, WiaPropertyId.CameraItemThumbWidth)
' Read the camera thumbnail height property.
Dim nHeight As Integer = myWiaSession.GetPropertyLong(e.Item, Nothing, WiaPropertyId.CameraItemThumbHeight)
Dim userDataLen As Integer = CType(stream.Length, Integer)
Dim userData(userDataLen - 1) As Byte
stream.Read(userData, 0, userDataLen)
Using thumbImage As New RasterImage(
RasterMemoryFlags.User,
nWidth,
nHeight,
24,
RasterByteOrder.Bgr,
RasterViewPerspective.LeftTop,
Nothing,
userData,
userDataLen)
Using codecs As New RasterCodecs()
codecs.Save(thumbImage, Path.Combine(LEAD_VARS.ImagesDir, "WiaThumb.jpg"), RasterImageFormat.Jpeg, 24)
End Using
End Using
myWiaSession.FreeItem(e.Item)
End If
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\LEADTOOLS21\Resources\Images"
End Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.