Assistance for DocumentImagingSDK11.05

Document Imaging SDK,
Image SDK,
TIFF SDK,
Annotation SDK,
Cover Page Generator

Moderator: Technical Support Team

Assistance for DocumentImagingSDK11.05

Postby Srinu » Fri May 06, 2011 10:13 am

i am developing sample application using DocumentImagingSDK11.05.

i am getting the following error at the time of compression functionality

Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Code: Select all
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ScanningApp
{
    public partial class ImageView : Form
    {
        private System.ComponentModel.Container components;
        private Scanning scanningDoc;
        private ScanningWindow mainWin;

        public short m_nNumOfPages;         //number of images of the image
        public short m_nCurrentImage;      //currnet image
        public int m_ImageType;
        private System.Windows.Forms.OpenFileDialog openFileDialog;
        public AxBIDIBLib.AxBIDIB BiDIB;
        public AxBITIFFLib.AxBITiff BiTiff;
        public AxBIDISPLib.AxBIDisp BiDisp;
        public AxBIIMAGELib.AxBIImage BiImage;
        public AxBIIMGFRMLib.AxBIImgFrm BiImgFrm;
        public AxBIANNOLib.AxBiAnno BiAnno;
        public AxBIPRINTLib.AxBIPrint BiPrint;
        public AxBIDOCIMGLib.AxBIDocImg BiDocImg;
        public AxBIFILTERLib.AxBIFilter BIFilter;
        public AxBIVISIONLib.AxBiVision BiVision;
        public AxBIPDFLib.AxBIPDF BiPDF;

        /// <summary>
        /// Parametrized Constructor
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="parent"></param>
        public ImageView(Scanning doc,ScanningWindow parent)
        {
            InitializeComponent();
            this.scanningDoc = doc;
            this.MdiParent = parent; //Make this Window Mdi child of the main window
            BiDisp.Cut = 0;
            mainWin = parent;
        }
        public ImageView()
        {
            InitializeComponent();
        }
        /// <summary>
        ///    Clean up any resources being used
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }

        /// <summary>
        ///    Required method for Designer support - do not modify
        ///    the contents of this method with the code editor
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ImageView));
            this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
            this.BiDIB = new AxBIDIBLib.AxBIDIB();
            this.BiTiff = new AxBITIFFLib.AxBITiff();
            this.BiDisp = new AxBIDISPLib.AxBIDisp();
            this.BiImage = new AxBIIMAGELib.AxBIImage();
            this.BiImgFrm = new AxBIIMGFRMLib.AxBIImgFrm();
            this.BiAnno = new AxBIANNOLib.AxBiAnno();
            this.BiPrint = new AxBIPRINTLib.AxBIPrint();
            this.BiDocImg = new AxBIDOCIMGLib.AxBIDocImg();
            this.BIFilter = new AxBIFILTERLib.AxBIFilter();
            this.BiVision = new AxBIVISIONLib.AxBiVision();
            this.BiPDF = new AxBIPDFLib.AxBIPDF();
            ((System.ComponentModel.ISupportInitialize)(this.BiDIB)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiTiff)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiDisp)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiImage)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiImgFrm)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiAnno)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiPrint)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiDocImg)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BIFilter)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiVision)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiPDF)).BeginInit();
            this.SuspendLayout();
            //
            // BiDIB
            //
            this.BiDIB.Enabled = true;
            this.BiDIB.Location = new System.Drawing.Point(216, 240);
            this.BiDIB.Name = "BiDIB";
            this.BiDIB.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiDIB.OcxState")));
            this.BiDIB.Size = new System.Drawing.Size(16, 15);
            this.BiDIB.TabIndex = 0;
            //
            // BiTiff
            //
            this.BiTiff.Enabled = true;
            this.BiTiff.Location = new System.Drawing.Point(280, 336);
            this.BiTiff.Name = "BiTiff";
            this.BiTiff.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiTiff.OcxState")));
            this.BiTiff.Size = new System.Drawing.Size(16, 15);
            this.BiTiff.TabIndex = 1;
            //
            // BiDisp
            //
            this.BiDisp.Location = new System.Drawing.Point(192, 408);
            this.BiDisp.Name = "BiDisp";
            this.BiDisp.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiDisp.OcxState")));
            this.BiDisp.Size = new System.Drawing.Size(100, 50);
            this.BiDisp.TabIndex = 2;
            //
            // BiImage
            //
            this.BiImage.Enabled = true;
            this.BiImage.Location = new System.Drawing.Point(408, 368);
            this.BiImage.Name = "BiImage";
            this.BiImage.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiImage.OcxState")));
            this.BiImage.Size = new System.Drawing.Size(17, 19);
            this.BiImage.TabIndex = 3;
            //
            // BiImgFrm
            //
            this.BiImgFrm.Enabled = true;
            this.BiImgFrm.Location = new System.Drawing.Point(496, 288);
            this.BiImgFrm.Name = "BiImgFrm";
            this.BiImgFrm.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiImgFrm.OcxState")));
            this.BiImgFrm.Size = new System.Drawing.Size(16, 15);
            this.BiImgFrm.TabIndex = 4;
            //
            // BiAnno
            //
            this.BiAnno.Enabled = true;
            this.BiAnno.Location = new System.Drawing.Point(520, 400);
            this.BiAnno.Name = "BiAnno";
            this.BiAnno.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiAnno.OcxState")));
            this.BiAnno.Size = new System.Drawing.Size(100, 50);
            this.BiAnno.TabIndex = 5;
            //
            // BiPrint
            //
            this.BiPrint.Enabled = true;
            this.BiPrint.Location = new System.Drawing.Point(512, 416);
            this.BiPrint.Name = "BiPrint";
            this.BiPrint.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiPrint.OcxState")));
            this.BiPrint.Size = new System.Drawing.Size(16, 15);
            this.BiPrint.TabIndex = 6;
            //
            // BiDocImg
            //
            this.BiDocImg.Enabled = true;
            this.BiDocImg.Location = new System.Drawing.Point(496, 176);
            this.BiDocImg.Name = "BiDocImg";
            this.BiDocImg.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiDocImg.OcxState")));
            this.BiDocImg.Size = new System.Drawing.Size(16, 15);
            this.BiDocImg.TabIndex = 7;
            //
            // BIFilter
            //
            this.BIFilter.Enabled = true;
            this.BIFilter.Location = new System.Drawing.Point(448, 296);
            this.BIFilter.Name = "BIFilter";
            this.BIFilter.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BIFilter.OcxState")));
            this.BIFilter.Size = new System.Drawing.Size(16, 15);
            this.BIFilter.TabIndex = 8;
            //
            // BiVision
            //
            this.BiVision.Enabled = true;
            this.BiVision.Location = new System.Drawing.Point(320, 264);
            this.BiVision.Name = "BiVision";
            this.BiVision.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiVision.OcxState")));
            this.BiVision.Size = new System.Drawing.Size(100, 50);
            this.BiVision.TabIndex = 9;
            //
            // BiPDF
            //
            this.BiPDF.Enabled = true;
            this.BiPDF.Location = new System.Drawing.Point(552, 416);
            this.BiPDF.Name = "BiPDF";
            this.BiPDF.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("BiPDF.OcxState")));
            this.BiPDF.Size = new System.Drawing.Size(16, 15);
            this.BiPDF.TabIndex = 10;
            //
            // ImageView
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.BackColor = System.Drawing.Color.White;
            this.ClientSize = new System.Drawing.Size(712, 525);
            this.Controls.Add(this.BiPDF);
            this.Controls.Add(this.BiVision);
            this.Controls.Add(this.BIFilter);
            this.Controls.Add(this.BiDocImg);
            this.Controls.Add(this.BiPrint);
            this.Controls.Add(this.BiAnno);
            this.Controls.Add(this.BiDisp);
            this.Controls.Add(this.BiImgFrm);
            this.Controls.Add(this.BiImage);
            this.Controls.Add(this.BiTiff);
            this.Controls.Add(this.BiDIB);
            this.Name = "ImageView";
            this.Text = "ImageView";
            this.Load += new System.EventHandler(this.ImageView_Load);
            this.Closed += new System.EventHandler(this.ClosedHandler);
            this.Closing += new System.ComponentModel.CancelEventHandler(this.ClosingHandler);
            ((System.ComponentModel.ISupportInitialize)(this.BiDIB)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiTiff)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiDisp)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiImage)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiImgFrm)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiAnno)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiPrint)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiDocImg)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BIFilter)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiVision)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.BiPDF)).EndInit();
            this.ResumeLayout(false);

        }

        private void ImageView_Load(object sender, EventArgs e)
        {
            System.Drawing.Rectangle formSize;
            formSize = this.ClientRectangle;
            BiDisp.Height = formSize.Height;
            BiDisp.Width = formSize.Width;
            BiDisp.Left = formSize.X;
            BiDisp.Top = formSize.Y;
            //CurrentRStamp = -1;   
        }

        public void ClosingHandler(Object sender, CancelEventArgs e)
        {

            if (scanningDoc.isDirty && scanningDoc.viewList.Count == 1)
            {
                DialogResult save = MessageBox.Show("Do you want to Save changes ?", "Document Imaging", MessageBoxButtons.YesNoCancel);
                if (save == DialogResult.Yes)
                {
                    SaveFileDialog saveDlg = new SaveFileDialog();
                    saveDlg.Filter = "TIFF Files (*.tif)|*.tif|Bitmap Files (*.bmp)|*.bmp|Jpeg Files (*.jpg)|*.jpg|CALS Files (*.cal)|*.cal";
                    saveDlg.DefaultExt = ".tif";
                    DialogResult res = saveDlg.ShowDialog();

                    if (res == DialogResult.OK)
                    {
                        //SaveAs(saveDlg.FileName, saveDlg.FilterIndex);
                        scanningDoc.viewList.Remove(this);
                        this.MdiParent = null;// remove this view(child) from the parent list
                    }
                    else if (res == DialogResult.Cancel)
                        e.Cancel = true;

                }

                else if (save == DialogResult.Cancel)
                    e.Cancel = true; //If user selected 'Cancel',don't close the form

                else if (save == DialogResult.No)
                {
                    scanningDoc.viewList.Remove(this);
                }
            }
            else
            {
                if (BiAnno.AnnoUIGetSaved() == true) //CheckAnnoSave();
                scanningDoc.viewList.Remove(this);
            }
        }

        public void ClosedHandler(Object sender, EventArgs e)
        {
            //If there are no Images, then disable menu
            if (mainWin.MdiChildren.Length == 1)
            {
                //mainWin.DisableItems();
            }
        }
       
        public Scanning GetDocument()
        {
            return scanningDoc;
        }

        public void SetTitle()
        {
            string szTitle;

            if (BiDisp.hDib != 0)
            {
                szTitle = GetDocument().szFileName + " - " + Convert.ToString(m_nNumOfPages, 10) + ":" + Convert.ToString(m_nCurrentImage + 1, 10);
                Text = szTitle;
            }
        }
       
        //public void Save()
        //{
        //    bool retVal = false;
        //    short err = 0;
        //    scanningDoc.isDirty = false;

        //    if (BiDisp.hDib != 0)
        //    {
        //        switch (m_ImageType)
        //        {
        //            case 2:
        //            case 9://tif, gammalink
        //                retVal = BiTiff.InsertTiffImage(scanningDoc.szFileName, BiDisp.hDib, 201, false, 1, m_nCurrentImage, false, true);
        //                break;
        //            case 3: //bmp
        //                retVal = BiDIB.SaveDIB(scanningDoc.szFileName, BiDisp.hDib);
        //                break;
        //            case 4: //jpg
        //                if ((BiDisp.ColorDepth != 1) && (BiDisp.ColorDepth != 8) && (BiDisp.ColorDepth != 24))
        //                    MessageBox.Show("The color depth of the image is invalid.\nYou can save 1, 8 or 24 bit per pixel images to jpeg file format.", "Document Imaging", MessageBoxButtons.OK);
        //                else
        //                {
        //                    retVal = Convert.ToBoolean(BiImgFrm.SaveDIBInJPEGFile(scanningDoc.szFileName, BiDisp.hDib, 75));
        //                }
        //                break;
        //            case 5: //cals
        //                retVal = BiTiff.SaveCALS(scanningDoc.szFileName, BiDisp.hDib, 90, 270, false);
        //                break;
        //            case 6: //CCITT
        //                FormCCITT dlgccitt = new FormCCITT();
        //                if (dlgccitt.ShowDialog() == DialogResult.OK)
        //                {
        //                    retVal = BiTiff.EncodeCcittImage(scanningDoc.szFileName, BiDisp.hDib, dlgccitt.nCompType);
        //                }
        //                break;
        //            case 7: //IBM MMR
        //                FormIBMMMR dlgMMR = new FormIBMMMR();
        //                if (dlgMMR.ShowDialog() == DialogResult.OK)
        //                {
        //                    retVal = BiTiff.EncodeMMRImage(scanningDoc.szFileName, BiDisp.hDib, dlgMMR.nCompType);
        //                }
        //                break;
        //            case 10: //bicom
        //                retVal = BiTiff.SaveDIBInBicomTiffFile(scanningDoc.szFileName, BiDisp.hDib);
        //                break;
        //            case 11: //dialogic
        //                retVal = BiTiff.SaveDIBInDialogicTiffFile(scanningDoc.szFileName, BiDisp.hDib, 206);
        //                break;
        //            case 12: //DCX
        //                if (BiImgFrm.MakeDCXFile(scanningDoc.szFileName, ref err) == true)
        //                    retVal = BiImgFrm.SaveDIBInDCXFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                else
        //                    retVal = false;
        //                break;
        //            case 13: //GIF
        //                retVal = BiImgFrm.SaveDIBInGIFFormat(scanningDoc.szFileName, BiDisp.hDib, 0, ref err);
        //                break;
        //            case 14: // PCX
        //                retVal = BiImgFrm.SaveDIBInPCXFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                break;
        //            case 15: //tga
        //                retVal = BiImgFrm.SaveDIBInTGAFormat(scanningDoc.szFileName, BiDisp.hDib, false, true);
        //                break;
        //            case 16: // wmf
        //                retVal = BiDIB.SaveDIBIntoMetaFile(scanningDoc.szFileName, BiDisp.hDib);
        //                break;
        //            case 17: // emf
        //                retVal = BiDIB.SaveDIBIntoEnhMetaFile(scanningDoc.szFileName, BiDisp.hDib);
        //                break;
        //            case 18: // clp
        //                retVal = BiDIB.SaveClipboardFormat(scanningDoc.szFileName, BiDisp.hDib);
        //                break;
        //            case 19: // png
        //                retVal = BiImgFrm.SaveDIBInPNGFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                break;
        //            case 20: // fax
        //                retVal = Convert.ToBoolean(BiImgFrm.SaveDIBInColorFaxJPEG(scanningDoc.szFileName, BiDisp.hDib, 75));
        //                break;
        //            case 21: // pdf
        //                // 18: PDF_FILE
        //                // &H200: FLAG_FILTER_FLAT_DECODE
        //                retVal = BiDIB.SaveDIBInImageFormat(scanningDoc.szFileName, BiDisp.hDib, 0, 18, 0x200);
        //                break;
        //        }

        //        if ((retVal) && (BiAnno.AnnoUIGetSaved() == true))
        //        {

        //            if (m_ImageType == 2)      //TIF
        //            {
        //                // Save annotation to the tiff file
        //                if (MessageBox.Show("Do you want to save the annotation object(s) to the TIFF file?", "Document Imaging Sample", MessageBoxButtons.YesNo) == DialogResult.Yes)
        //                {
        //                    if (!BiAnno.AnnoSaveToTiff(scanningDoc.szFileName, 0))
        //                        MessageBox.Show("Error saving annotation to the TIFF file.", "Document Imaging Sample");
        //                }
        //                GetDocument().LoadPage((short)m_nCurrentImage);

        //            }
        //        }
        //    }
        //}

        //public void SavePage()
        //{
        //    bool retVal = false;
        //    short err = 0;

        //    if (MessageBox.Show("Do you want to save the modified picture?", "Save", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        //    {
        //        if (BiDisp.hDib != 0)
        //        {
        //            switch (m_ImageType)
        //            {
        //                case 2:
        //                case 9://tif, gammalink
        //                    retVal = BiTiff.InsertTiffImage(scanningDoc.szFileName, BiDisp.hDib, 201, false, 1, m_nCurrentImage, false, true);
        //                    break;
        //                case 3: //bmp
        //                    retVal = BiDIB.SaveDIB(scanningDoc.szFileName, BiDisp.hDib);
        //                    break;
        //                case 4: //jpg
        //                    if ((BiDisp.ColorDepth != 1) && (BiDisp.ColorDepth != 8) && (BiDisp.ColorDepth != 24))
        //                        MessageBox.Show("The color depth of the image is invalid.\nYou can save 1, 8 or 24 bit per pixel images to jpeg file format.", "Document Imaging", MessageBoxButtons.OK);
        //                    else
        //                    {
        //                        retVal = Convert.ToBoolean(BiImgFrm.SaveDIBInJPEGFile(scanningDoc.szFileName, BiDisp.hDib, 75));
        //                    }
        //                    break;
        //                case 5: //cals
        //                    retVal = BiTiff.SaveCALS(scanningDoc.szFileName, BiDisp.hDib, 90, 270, false);
        //                    break;
        //                case 6: //CCITT
        //                    FormCCITT dlgccitt = new FormCCITT();
        //                    if (dlgccitt.ShowDialog() == DialogResult.OK)
        //                    {
        //                        retVal = BiTiff.EncodeCcittImage(scanningDoc.szFileName, BiDisp.hDib, dlgccitt.nCompType);
        //                    }
        //                    break;
        //                case 7: //IBM MMR
        //                    FormIBMMMR dlgMMR = new FormIBMMMR();
        //                    if (dlgMMR.ShowDialog() == DialogResult.OK)
        //                    {
        //                        retVal = BiTiff.EncodeMMRImage(scanningDoc.szFileName, BiDisp.hDib, dlgMMR.nCompType);
        //                    }
        //                    break;
        //                case 10: //bicom
        //                    retVal = BiTiff.SaveDIBInBicomTiffFile(scanningDoc.szFileName, BiDisp.hDib);
        //                    break;
        //                case 11: //dialogic
        //                    retVal = BiTiff.SaveDIBInDialogicTiffFile(scanningDoc.szFileName, BiDisp.hDib, 206);
        //                    break;
        //                case 12: //DCX
        //                    if (BiImgFrm.MakeDCXFile(scanningDoc.szFileName, ref err) == true)
        //                        retVal = BiImgFrm.SaveDIBInDCXFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                    else
        //                        retVal = false;
        //                    break;
        //                case 13: //GIF
        //                    retVal = BiImgFrm.SaveDIBInGIFFormat(scanningDoc.szFileName, BiDisp.hDib, 0, ref err);
        //                    break;
        //                case 14: // PCX
        //                    retVal = BiImgFrm.SaveDIBInPCXFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                    break;
        //                case 15: //tga
        //                    retVal = BiImgFrm.SaveDIBInTGAFormat(scanningDoc.szFileName, BiDisp.hDib, false, true);
        //                    break;
        //                case 16: // wmf
        //                    retVal = BiDIB.SaveDIBIntoMetaFile(scanningDoc.szFileName, BiDisp.hDib);
        //                    break;
        //                case 17: // emf
        //                    retVal = BiDIB.SaveDIBIntoEnhMetaFile(scanningDoc.szFileName, BiDisp.hDib);
        //                    break;
        //                case 18: // clp
        //                    retVal = BiDIB.SaveClipboardFormat(scanningDoc.szFileName, BiDisp.hDib);
        //                    break;
        //                case 19: // png
        //                    retVal = BiImgFrm.SaveDIBInPNGFormat(scanningDoc.szFileName, BiDisp.hDib, ref err);
        //                    break;
        //                case 20: // fax
        //                    retVal = Convert.ToBoolean(BiImgFrm.SaveDIBInColorFaxJPEG(scanningDoc.szFileName, BiDisp.hDib, 75));
        //                    break;
        //                case 21: // pdf
        //                    // 18: PDF_FILE
        //                    // &H200: FLAG_FILTER_FLAT_DECODE
        //                    retVal = BiDIB.SaveDIBInImageFormat(scanningDoc.szFileName, BiDisp.hDib, 0, 18, 0x200);
        //                    break;
        //            }
        //        }
        //        if (retVal)
        //        {
        //            if (m_ImageType == 2)
        //            {
        //                if (BiAnno.AnnoUIGetSaved() == true)
        //                {
        //                    // Save annotation to the tiff file
        //                    if (MessageBox.Show("Do you want to save the annotation object(s) to the TIFF file?", "Document Imaging Sample", MessageBoxButtons.YesNo) == DialogResult.Yes)
        //                    {
        //                        if (!BiAnno.AnnoSaveToTiff(scanningDoc.szFileName, 0))
        //                            MessageBox.Show("Error saving annotation to the TIFF file.", "Annotation");
        //                    }
        //                }
        //            }
        //            else
        //            {
        //                // Save annotation to *.ann file
        //                CheckAnnoSave();
        //            }
        //        }
        //    }

        //    scanningDoc.isDirty = false;
        //}

        public void SaveAs(string fileName, int filter)
        {
            bool retVal = false, bScaled = false, bDithered = false;
            int hDibNew = 0;
            int hDib = BiDisp.hDib;
            short err = 0;
            bool bShowMsg = true;

            if (System.IO.Path.GetExtension(fileName).Length == 0)
            {
                switch (filter)
                {
                    case 1: //tiff
                        fileName += ".tif";
                        break;
                    case 2: //bmp
                        fileName += ".bmp";
                        break;
                    case 3: // bmp32
                        fileName += ".bmp";
                        break;
                    case 4: //jpg
                        fileName += ".jpg";
                        break;
                    case 5: //cal
                        fileName += ".cal";
                        break;
                    case 6: //CCITT
                        fileName += ".raw";
                        break;
                    case 7: //mmr
                        fileName += ".ica";
                        break;
                    case 8: //GAMMA
                        fileName += ".tif";
                        break;
                    case 9: //BICOM
                        fileName += ".tif";
                        break;
                    case 10: //DIALOGIC
                        fileName += ".tif";
                        break;
                    case 11: //DCX
                        fileName += ".dcx";
                        break;
                    case 12: //GIF
                        fileName += ".gif";
                        break;
                    case 13: //PCX
                        fileName += ".pcx";
                        break;
                    case 14: //TGA
                        fileName += ".tga";
                        break;
                    case 15: //WMF
                        fileName += ".wmf";
                        break;
                    case 16: //EMF
                        fileName += ".emf";
                        break;
                    case 17: //CLP
                        fileName += ".clp";
                        break;
                    case 18: //png
                        fileName += ".png";
                        break;
                    case 19: //fax
                        fileName += ".fax";
                        break;
                    case 20: //pdf
                        fileName += ".pdf";
                        break;
                }
            }

            if (1 != 0)
            {
                switch (filter)
                {
                    case 1:      //tiff
                        retVal = BiTiff.SaveDIBInTiffFormat(fileName, BiDisp.hDib, 4, true);
                        if (!retVal)
                        {
                            if (BiTiff.BiTiffGetLastError() == 0)
                                bShowMsg = false;
                        }
                        break;
                    case 2:      //bmp
                        retVal = BiDIB.SaveDIB(fileName, BiDisp.hDib);
                        break;
                    case 3:      // bmp 32 bit
                        if (BiDisp.hDib32 > 0)
                            BiDIB.Save32BitDIB(fileName, BiDisp.hDib, BiDisp.hDib32);
                        else
                            BiDIB.Save32BitDIB(fileName, BiDisp.hDib, 0);
                        break;
                    case 4:      //jpg
                        if ((BiDisp.ColorDepth != 1) && (BiDisp.ColorDepth != 8) && (BiDisp.ColorDepth != 24))
                        {
                            MessageBox.Show("The color depth of the image is invalid.\nYou can save 1, 8 or 24 bit per pixel images to jpeg file format.", "Document Imaging", MessageBoxButtons.OK);
                            bShowMsg = false;
                        }
                        else
                        {
                            if (BiImgFrm.SaveDIBInJPEGFile(fileName, BiDisp.hDib, 75) == 0)
                                retVal = true;
                            else
                                retVal = false;
                        }
                        break;
                    case 5:      //cal
                        DialogResult save = DialogResult.Yes;
                        if (BiDisp.ColorDepth > 1)
                            save = MessageBox.Show("The image must be Monochrome. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);

                        if (save == DialogResult.Yes)
                        {
                            Cursor = System.Windows.Forms.Cursors.WaitCursor;

                            if (BiDisp.ColorDepth > 1)
                            {
                                hDibNew = BiImage.DitherFS4(hDib, 1);
                                bDithered = true;
                            }

                            if (bDithered && (hDibNew > 0))
                            {
                                BiDisp.hDib = hDibNew;
                                retVal = BiTiff.SaveCALS(fileName, hDibNew, 90, 270, false);
                            }
                            else
                            {
                                retVal = BiTiff.SaveCALS(fileName, BiDisp.hDib, 90, 270, false);
                            }
                            Cursor = System.Windows.Forms.Cursors.Default;
                        }
                        break;
                    case 6: // CCITT
                        //FormCCITT dlgccitt = new FormCCITT();
                        //if (dlgccitt.ShowDialog() == DialogResult.OK)
                        //{
                        //    save = DialogResult.Yes;
                        //    if (BiDisp.ColorDepth > 1)
                        //        save = MessageBox.Show("The image must be Monochrome. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                        //    if (save == DialogResult.Yes)
                        //    {
                        //        Cursor = System.Windows.Forms.Cursors.WaitCursor;

                        //        if (BiDisp.ColorDepth > 1)
                        //        {
                        //            hDibNew = BiImage.DitherFS4(hDib, 1);
                        //            bDithered = true;
                        //        }

                        //        if (bDithered && (hDibNew > 0))
                        //        {
                        //            BiDisp.hDib = hDibNew;
                        //            retVal = BiTiff.EncodeCcittImage(fileName, hDibNew, dlgccitt.nCompType);
                        //        }
                        //        else
                        //            retVal = BiTiff.EncodeCcittImage(fileName, hDib, dlgccitt.nCompType);

                        //        Cursor = System.Windows.Forms.Cursors.Default;
                        //    }
                        //}
                        break;
                    case 7: // IBM MMR
                        //FormIBMMMR dlgibmmmr = new FormIBMMMR();
                        //if (dlgibmmmr.ShowDialog() == DialogResult.OK)
                        //{
                        //    save = DialogResult.Yes;
                        //    if (BiDisp.ColorDepth > 1)
                        //        save = MessageBox.Show("The image must be Monochrome. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                        //    if (save == DialogResult.Yes)
                        //    {
                        //        Cursor = System.Windows.Forms.Cursors.WaitCursor;

                        //        if (BiDisp.ColorDepth > 1)
                        //        {
                        //            hDibNew = BiImage.DitherFS4(hDib, 1);
                        //            bDithered = true;
                        //        }

                        //        if (bDithered && (hDibNew > 0))
                        //        {
                        //            BiDisp.hDib = hDibNew;
                        //            retVal = BiTiff.EncodeMMRImage(fileName, hDibNew, dlgibmmmr.nCompType);
                        //        }
                        //        else
                        //            retVal = BiTiff.EncodeMMRImage(fileName, hDib, dlgibmmmr.nCompType);

                        //        Cursor = System.Windows.Forms.Cursors.Default;
                        //    }
                        //}
                        break;
                    case 8: //GAMMALINK
                        save = DialogResult.Yes;
                        if ((BiDisp.ColorDepth > 1) || (BiDisp.ImageWidth != 1728))
                            save = MessageBox.Show("The image must be Monochrome and 1728 width. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                        if (save == DialogResult.Yes)
                        {
                            Cursor = System.Windows.Forms.Cursors.WaitCursor;

                            if (BiDisp.ColorDepth > 1)
                            {
                                hDibNew = BiImage.DitherFS4(hDib, 1);
                                bDithered = true;
                            }

                            if (BiDisp.ImageWidth != 1728)
                            {
                                int height = BiDisp.ImageHeight;
                                if (bDithered)
                                    hDibNew = BiDIB.ScaleDIB(hDibNew, 0, 1728, height);
                                else
                                    hDibNew = BiDIB.ScaleDIB(hDib, 0, 1728, height);
                                bScaled = true;
                            }

                            if ((hDibNew > 0) && (bDithered || bScaled))
                            {
                                BiDisp.hDib = hDibNew;
                                retVal = BiTiff.SaveDIBInGammaTiffFile(fileName, hDibNew, true);
                            }
                            else
                                retVal = BiTiff.SaveDIBInGammaTiffFile(fileName, hDib, true);

                            Cursor = System.Windows.Forms.Cursors.Default;
                        }
                        break;
                    case 9: //BICOM
                        save = DialogResult.Yes;
                        if ((BiDisp.ColorDepth > 1) || (BiDisp.ImageWidth != 1728))
                            save = MessageBox.Show("The image must be Monochrome and 1728 width. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                        if (save == DialogResult.Yes)
                        {
                            Cursor = System.Windows.Forms.Cursors.WaitCursor;

                            if (BiDisp.ColorDepth > 1)
                            {
                                hDibNew = BiImage.DitherFS4(hDib, 1);
                                bDithered = true;
                            }

                            if (BiDisp.ImageWidth != 1728)
                            {
                                int height = BiDisp.ImageHeight;
                                if (bDithered)
                                    hDibNew = BiDIB.ScaleDIB(hDibNew, 0, 1728, height);
                                else
                                    hDibNew = BiDIB.ScaleDIB(hDib, 0, 1728, height);
                                bScaled = true;
                            }

                            if ((hDibNew > 0) && (bDithered || bScaled))
                            {
                                BiDisp.hDib = hDibNew;
                                retVal = BiTiff.SaveDIBInBicomTiffFile(fileName, hDibNew);
                            }
                            else
                                retVal = BiTiff.SaveDIBInBicomTiffFile(fileName, hDib);

                            Cursor = System.Windows.Forms.Cursors.Default;
                        }
                        break;
                    case 10: //DIALOGIC
                        save = DialogResult.Yes;
                        if ((BiDisp.ColorDepth > 1) || (BiDisp.ImageWidth != 1728))
                            save = MessageBox.Show("The image must be Monochrome and 1728 width. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                        if (save == DialogResult.Yes)
                        {
                            Cursor = System.Windows.Forms.Cursors.WaitCursor;

                            if (BiDisp.ColorDepth > 1)
                            {
                                hDibNew = BiImage.DitherFS4(hDib, 1);
                                bDithered = true;
                            }

                            if (BiDisp.ImageWidth != 1728)
                            {
                                int height = BiDisp.ImageHeight;
                                if (bDithered)
                                    hDibNew = BiDIB.ScaleDIB(hDibNew, 0, 1728, height);
                                else
                                    hDibNew = BiDIB.ScaleDIB(hDib, 0, 1728, height);
                                bScaled = true;
                            }

                            if ((hDibNew > 0) && (bDithered || bScaled))
                            {
                                BiDisp.hDib = hDibNew;
                                retVal = BiTiff.SaveDIBInDialogicTiffFile(fileName, hDibNew, Convert.ToInt16(BIDISPLib.enumCompressionModes.tifcmCcittG31D));
                            }
                            else
                                retVal = BiTiff.SaveDIBInDialogicTiffFile(fileName, hDib, Convert.ToInt16(BIDISPLib.enumCompressionModes.tifcmCcittG31D));
                            if (retVal)
                                BiTiff.UpdatePageNumbers(fileName);

                            Cursor = System.Windows.Forms.Cursors.Default;
                        }
                        break;
                    case 11: //DCX
                        if (BiImgFrm.MakeDCXFile(fileName, ref err))
                            retVal = BiImgFrm.SaveDIBInDCXFormat(fileName, hDib, ref err);
                        else
                            retVal = false;
                        break;
                    case 12: // GIF
                        if (BiDisp.ColorDepth >= 24)
                        {
                            save = MessageBox.Show("The image must be Monochrome or 8 bit per pixel. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                            if (save == DialogResult.Yes)
                            {
                                hDibNew = BiImage.DitherFS4(hDib, 8);
                                bDithered = true;
                            }
                            else
                                return;
                        }
                        if (bDithered && (hDibNew > 0))
                        {
                            BiDisp.hDib = hDibNew;
                            retVal = BiImgFrm.SaveDIBInGIFFormat(fileName, hDibNew, 0, ref err);
                        }
                        else
                            retVal = BiImgFrm.SaveDIBInGIFFormat(fileName, hDib, 0, ref err);
                        break;
                    case 13: //PCX
                        retVal = BiImgFrm.SaveDIBInPCXFormat(fileName, hDib, ref err);
                        break;
                    case 14: //TGA
                        retVal = BiImgFrm.SaveDIBInTGAFormat(fileName, hDib, false, true);
                        break;
                    case 15: // WMF
                        if (BiDisp.ColorDepth < 24)
                        {
                            save = MessageBox.Show("The saved Windows Metafile will be 24 bit per pixel. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                            if (save == DialogResult.No)
                                return;
                            retVal = BiDIB.SaveDIBIntoMetaFile(fileName, hDib);
                            hDib = BiDIB.LoadMetaFileIntoBitmap(fileName);
                            BiDisp.hDib = hDib;
                        }
                        break;
                    case 16: // EMF
                        if (BiDisp.ColorDepth < 24)
                        {
                            save = MessageBox.Show("The saved Windows Metafile will be 24 bit per pixel. Do you want to continue?", "Document Imaging", MessageBoxButtons.YesNo);
                            if (save == DialogResult.No)
                                return;
                            retVal = BiDIB.SaveDIBIntoEnhMetaFile(fileName, hDib);
                            hDib = BiDIB.LoadMetaFileIntoBitmap(fileName);
                            BiDisp.hDib = hDib;
                        }
                        break;
                    case 17: //CLP
                        retVal = BiDIB.SaveClipboardFormat(fileName, hDib);
                        break;
                    case 18: //PNG
                        retVal = BiImgFrm.SaveDIBInPNGFormat(fileName, hDib, ref err);
                        break;
                    case 19: // FAX
                        retVal = Convert.ToBoolean(BiImgFrm.SaveDIBInColorFaxJPEG(fileName, hDib, 75));
                        retVal = !retVal;
                        break;
                    case 20: // PDF
                        // 18: PDF_FILE
                        // &H200: FLAG_FILTER_FLAT_DECODE
                        retVal = BiDIB.SaveDIBInImageFormat(fileName, hDib, 0, 18, 0x200);
                        break;
                }
                if (retVal)
                {
                    GetDocument().isDirty = false;
                    if (filter == 1)      //TIF
                    {
                        // Save annotation to the tiff file
                        if (MessageBox.Show("Do you want to save the annotation object(s) to the TIFF file?", "Document Imaging Sample", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            short iPages = BiTiff.GetNumberOfImagesInTiffFile(fileName);
                            if (!BiAnno.AnnoSaveToTiffExt(fileName, 0, (short)BIANNOLib.SaveAnnoToTiffModes.SAVE_ANNO_APPEND, m_nCurrentImage, iPages - 1))
                                MessageBox.Show("Error saving annotation to the TIFF file.", "Document Imaging Sample");
                        }
                    }
                    //else
                        // Save annotation to *.ann file
                        //CheckAnnoSaveAs(filter);
                }
                else
                {
                    if (bShowMsg)
                        MessageBox.Show("Error saving file.", "Document Imaging", MessageBoxButtons.OK);
                }
            }
        }

       
    }
}


Thanks
SrinivasBabu
Srinu
 
Posts: 2
Joined: Thu May 05, 2011 12:55 pm

Return to Imaging Toolkits



Who is online

Users browsing this forum: No registered users and 1 guest

cron