VB .NET - Convertendo Texto para Imagem (para novatos)
Neste artigo vou mostrar como converter texto para imagem usando o namespace Graphics. |
Usar os recursos do GDI+ é a maneira de desenhar formas, fontes, imagens ou
geralmente qualquer coisa gráfica no Visual Basic .NET.
Os namespaces em GDI+ são:
System.Drawing - Este é o principal namespace GDI+, ele define objetos para a renderização base(fontes, canetas, escovas básicas, etc.) e o objeto mais importante: Graphics;
System.Drawing.Drawing2D - Permite usar objetos para gráficos bidimensionais vetoriais. Alguns deles são escovas de inclinação, canetas e transformações geométricas;
System.Drawing.Imaging - Se você quer mudar imagens gráficas - ou seja, alterar a paleta, o metadados do extrato de imagem, manipular metafiles, e assim por diante - este é o namespace que você precisa;
System.Drawing.Printing - Para renderizar imagens para a página da impressa, interagir com a própria impressora, e formatar a aparência geral de um trabalho de impressão, use este namespace;
O
lugar para começar com GDI+ é o objeto Graphics. Embora as coisas que
você desenha apareçam em seu monitor ou em uma impressora, o objeto Graphics é a
"tela" onde você desenha.
Mas o objeto Graphics é também uma das primeiras fontes de confusão ao
usar GDI +. O objeto Graphics está sempre associado a um contexto de dispositivo
particular.
Assim, o primeiro problema que praticamente cada novo aluno do GDI+ confronta é: "Como faço para obter um objeto Graphics ?"
Existem basicamente duas formas :
1- Você pode usar o parâmetro e de evento que é passado para o evento OnPaint com o objeto PaintEventArgs. Vários eventos passam o PaintEventArgse e você pode usá-lo para se referir ao objeto Graphics que já está sendo usado pelo dispositivo do contexto.
2- Você pode usar o método CreateGraphics para um dispositivo de contexto para criar um objeto Graphics.
Além do objeto Graphics você usará também com muita frequência os objetos : Colors, Pen e Fonts:
Neste artigo eu vou mostrar como criar uma imagem a partir de um texto em tempo de execução e exibir a imagem em um controle PictureBox e salvar a imagem no arquivo de sistemas local.
Recursos Usados
Visual Studio Community 2015 (é grátis)
Abra o VS 2015 Community clique em New Project;
Selecione Visual Basic -> Windows Forms Application;
Informe o nome VBNET_Texto_Imagem e clique no botão OK;
Abaixo vemos o formulário principal do programa:
A seguir vamos incluir no formulário padrão os seguintes controles:
GroupBox - Text=Configuração
1 Button - btnFonte
1 Button - btnCorFonte
1 Button - btnCorFundo
4 Labels - Salvar Imagem como: e Informe o texto a converter
2 Combobox - cboLargura, cboAltura
2 Textbox - txtNomeArquivo e txtTexto
2 Buttons - btnGerarImagem e btnSair
1 PictureBox - picImagem
No início o formulário vamos definir as variáveis que serão visíveis em todo o projeto com seus valores padrão:
Dim
FontNome As String = "Segoe UI"No evento Load do formulário vamos definir os valores padrão para a seleção das comboboxes:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load cboLargura.SelectedIndex = 10 cboAltura.SelectedIndex = 2 End Sub |
Agora vamos definir o código em cada evento Click dos botões de comando.
1- Botão Fonte - Define a fonte e o tamanho da fonte a ser usado
Private Sub btnFonte_Click(sender As Object, e As EventArgs) Handles btnFonte.Click Dim dlg As New FontDialog If dlg.ShowDialog = DialogResult.OK Then btnFonte.Font = dlg.Font FontNome = dlg.Font.Name FontTamanho = dlg.Font.Size End If End Sub |
Usamos aqui a classe FontDialog que exibe uma caixa de diálogo para selecionar a fonte , estilo e tamanho.
2- Botão Definir Cor da Fonte - Define a cor da fonte a ser usada para escrever a imagem
Private Sub btnCorFonte_Click(sender As Object, e As EventArgs) Handles btnCorFonte.Click Dim dlg As New ColorDialog If dlg.ShowDialog() = DialogResult.OK Then FontCor = dlg.Color btnCorFonte.BackColor = dlg.Color End If End Sub |
3- Botão Definir Cor de Fundo - Define a cor de fundo para a imagem
Private Sub btnCorFundo_Click(sender As Object, e As EventArgs) Handles btnCorFundo.Click Dim dlg As New ColorDialog If dlg.ShowDialog() = DialogResult.OK Then CorFundo = dlg.Color btnCorFundo.BackColor = dlg.Color End If End Sub |
4- Botão Gerar Imagem
Private Sub btnGerarImagem_Click(sender As Object, e As EventArgs) Handles btnGerarImagem.Click Try largura = Convert.ToInt32(cboLargura.Text) altura = Convert.ToInt32(cboAltura.Text) 'cria um bitmap usando a largura e altura definidas Dim objBitmap As New Bitmap(largura, altura) 'cria um objeto Graphics usando o bitmap Dim objGraphics As Graphics = Graphics.FromImage(objBitmap) ' cria os objetos Color , Font e PointF Dim objColor As Color = Nothing Dim objFont As New Font(FontNome, FontTamanho) ' define onde o texto será exibido na área da imagem Dim objPoint As New PointF(5.0F, 5.0F) ' cria dois objetos SolidBrush Dim objBrushForeColor As New SolidBrush(FontCor) Dim objBrushBackColor As New SolidBrush(CorFundo) 'Cria um retãngulo usando o objeto Graphics objGraphics.FillRectangle(objBrushBackColor, 0, 0, 500, 500) 'Desenha o texto no retângulo usando o objeto Graphics objGraphics.DrawString(txtTexto.Text, objFont, objBrushForeColor, objPoint) 'salva e exibe a imagem gerada objBitmap.Save(txtNomeArquivo.Text & ".JPG", ImageFormat.Jpeg) picImagem.Image = objBitmap 'MessageBox.Show("Imagem criada com sucesso.") Catch ex As Exception MessageBox.Show("Erro : " & ex.Message) End Try End Sub
|
5- Botão Encerrar - Sai da aplicação
Private Sub btnSair_Click(sender As Object, e As EventArgs) Handles btnSair.Click Application.Exit() End Sub |
Executando o projeto e selecionando alguns valores teremos o seguinte resultado :
Esse é um projeto bem básico para os novatos que estão iniciando o aprendizado na linguagem VB .NET.
Pegue o projeto completo aqui : VBNET_Texto_Imagem.zip
E esta é a mensagem
que dele ouvimos, e vos anunciamos: que Deus é luz, e não há nele trevas
nenhumas.
Se dissermos que temos comunhão com ele, e andarmos em trevas, mentimos, e não
praticamos a verdade
1 João 1:5,6
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: