Exemplo n.º 1
0
        /// <summary>
        /// Captura a imagem da câmera digital.
        /// </summary>
        /// <param name="imageInfo">Imagem a ser capturada.</param>
        /// <param name="outputBitmap">Bitmap de saída.</param>
        /// <returns>True, se foi possível capturar a imagem e false, caso contrário.</returns>
        public bool GetPicture(WIAImageInfo imageInfo, out Bitmap outputBitmap)
        {
            // cria common dialog
            WIA.CommonDialogClass dlg = new WIA.CommonDialogClass();
            bool ret = false;

            // inicializa bitmap
            outputBitmap = null;

            try
            {
                // transfere imagem
                WIA.ImageFile imageFile = (ImageFile)dlg.ShowTransfer(imageInfo.WIAItem, FormatID.wiaFormatJPEG, false);

                // captura os dados binários da imagem
                System.IO.MemoryStream memStream = new System.IO.MemoryStream((byte[])imageFile.FileData.get_BinaryData());

                // cria bitmap em memória
                outputBitmap = new Bitmap(memStream);

                ret = true;
            }
            catch
            {
                ret = false;
            }

            // valor de retorno
            return(ret);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Lista as imagens existentes no dispositivo.
        /// </summary>
        /// <returns>Uma lista contendo informações sobre as imagens.</returns>
        public List <WIAImageInfo> ListDevicePictures()
        {
            // cria lista de imagens
            List <WIAImageInfo> imageInfoList = new List <WIAImageInfo>();

            // loop nos items do dispositivo
            foreach (Item item in this.connectedDevice.Items)
            {
                bool isImageItem = false;

                // loop nas propriedades do item
                foreach (Property p in item.Properties)
                {
                    if (p.Name == "Item Flags")
                    {
                        int imageFlag = (int)p.get_Value();

                        // verifica se é uma imagem
                        isImageItem = ((imageFlag & (int)WiaItemFlag.ImageItemFlag) == 1);
                        break;
                    }
                }

                // verifica se o item é uma imagem
                if (isImageItem)
                {
                    bool   foundImageName = false;
                    string imageFileName  = "";

                    // procura pelo nome da imagem
                    foreach (Property imgProperty in item.Properties)
                    {
                        if (imgProperty.Name == "Item Name")
                        {
                            imageFileName  = imgProperty.get_Value().ToString();
                            foundImageName = true;
                            break;
                        }
                    }

                    // verifica se encontrou a propriedade com o nome do arquivo
                    if (foundImageName)
                    {
                        // cria informação da imagem
                        WIAImageInfo imageInfo = new WIAImageInfo(imageFileName, item);

                        // adiciona na lista
                        imageInfoList.Add(imageInfo);
                    }
                }
            }

            // ordena imagens pelo nome
            imageInfoList.Sort(new ImageInfoComparer());

            // retorna lista
            return(imageInfoList);
        }