/// <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); }
/// <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); }