/// <summary> /// Constrói lista de clientes /// </summary> public ListaPessoas() { // This call is required by the Windows.Forms Form Designer. InitializeComponent(); // Construir atributos itens = new ColeçãoListaPessoasItem(this); sinalização = null; seleção = null; }
/// <summary> /// Remove sinalização. /// </summary> public void Dessinalizar() { lock (this) { if (sinalização != null) { this.SuspendLayout(); this.Controls.Remove(sinalização); this.ResumeLayout(); sinalização.Dispose(); sinalização = null; } } }
/// <summary> /// Atribui ícone da mercadoria à sinalização feita pelo método /// SinalizarSaquinho. Esta função é chamada por uma nova thread. /// </summary> /// <param name="obj">Vetor contendo SinalizaçãoCarga e Mercadoria.</param> private void SinalizarSaquinhoTardiamente(SinalizaçãoCarga sinalização, Entidades.Mercadoria.Mercadoria mercadoria) { try { sinalização.Imagem = mercadoria.Ícone; } catch { } }
/// <summary> /// Adiciona sinalização ao controle. /// </summary> /// <param name="sinalização">Sinalização a ser adicionada.</param> private void AdicionarSinalização(SinalizaçãoCarga sinalização) { lock (this) { if (sinalização != null) Dessinalizar(); this.sinalização = sinalização; this.SuspendLayout(); this.Controls.Add(sinalização); sinalização.Location = new Point( (ClientSize.Width - sinalização.Width) / 2, (ClientSize.Height - sinalização.Height) / 2); sinalização.BringToFront(); this.ResumeLayout(); } }
/// <summary> /// Inicia o tratamento de remoção de fundo /// e sinaliza operação. /// </summary> public void RemoverFundo(Bitmap imagem) { if (tratamento.Fundo == null) ObterFundo(); lock (this) { if (tratamento.Fundo.Height != imagem.Height || tratamento.Fundo.Width != imagem.Width) { tratamento.Fundo = Entidades.Álbum.Foto.Redesenhar(tratamento.Fundo, imagem.Width, imagem.Height); } últimaImagemSolicitadaáRemoção = imagem; if (sinalização == null) { sinalização = SinalizaçãoCarga.Sinalizar( picFoto, "Removendo fundo", "Aguarde enquanto o sistema remove o fundo."); btnProsseguir.Enabled = false; } imagemTratada = tratamento.RealizarTrabalho((Bitmap) (imagem.Clone())); { float[][] matrixItems = { new float[] {1, 0, 0, 0, 0}, new float[] {0, 1, 0, 0, 0}, new float[] {0, 0, 1, 0, 0}, new float[] {0, 0, 0, 0.5f, 0}, new float[] {0, 0, 0, 0, 1}}; ColorMatrix colorMatrix = new ColorMatrix(matrixItems); using (ImageAttributes imageAtt = new ImageAttributes()) { imageAtt.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); picFoto.Image = new Bitmap(imagem.Width, imagem.Height); using (Graphics g = Graphics.FromImage(picFoto.Image)) { g.DrawImage( imagem, new Rectangle(0, 0, imagem.Width, imagem.Height), 0, 0, imagem.Width, imagem.Height, GraphicsUnit.Pixel, imageAtt); g.DrawImageUnscaled( imagemTratada, 0, 0); } } SinalizaçãoCarga.Dessinalizar(sinalização); sinalização = null; btnProsseguir.Enabled = true; } } }