View on GitHub

SARAFF SOFTWARE

All products / Saraff.Twain.NET / Contents

Image Information and Extended Image Information

To retrieve image information and extended image information need to handle the XferDone event. This event is raised for each of the received image. The following example shows how to do it.

private void _twain32_XferDone(object sender,Twain32.XferDoneEventArgs e) {
    try {
        #region Image info

        this.textBox1.AppendText(string.Format("Image Info:{0}",Environment.NewLine));
        var _imageInfo=e.GetImageInfo();
        this.textBox1.AppendText(string.Format("YResolution={0}; XResolution={1}; PixelType={2}; SamplesPerPixel={3}; ImageWidth={4}; ImageLength={5};{6}",_imageInfo.YResolution,_imageInfo.XResolution,_imageInfo.PixelType,_imageInfo.SamplesPerPixel,_imageInfo.ImageWidth,_imageInfo.ImageLength,Environment.NewLine));

        #endregion

        #region Extended Image Info

        if((this._twain32.IsCapSupported(TwCap.ExtImageInfo)&TwQC.Get)!=0) { // if extended image info support
            this.textBox1.AppendText("Extended Image Info:");
            var _extImageInfo=e.GetExtImageInfo(new TwEI[] { TwEI.BarCodeCount,TwEI.BarCodeType,TwEI.BarCodeTextLength,TwEI.Camera,TwEI.Frame,TwEI.PixelFlavor,TwEI.DocumentNumber });

        #region Show info

            foreach(var _item in _extImageInfo) {
                this.textBox1.AppendText(string.Format("{0}{1} = ",Environment.NewLine,_item.InfoId));
                if(_item.IsSuccess) {
                    if(_item.Value is object[]) {
                        foreach(var _value in _item.Value as object[]) {
                            this.textBox1.AppendText(string.Format("{0}; ",_value));
                        }
                    } else {
                        this.textBox1.AppendText(string.Format("{0}; ",_item.Value));
                    }
                }
                if(_item.IsNotAvailable) {
                    this.textBox1.AppendText("NotAvailable");
                }
                if(_item.IsNotSupported) {
                    this.textBox1.AppendText("NotSupported");
                }
            }

        }

        #endregion

        #endregion
    } catch(Exception ex) {
        this.textBox1.AppendText(string.Format("{0}: {1}",ex.GetType().Name,ex.Message));
    }
}