Tradução de código Morse com Aspose.Font | .NET
Tradução de código Morse com Aspose.Font for.NET
O que é tradução em Código Morse?
Esta é uma funcionalidade que permite:
| Objectivo | Como funciona |
|---|---|
| Codificar texto simples em glifos de código Morse de uma fonte (ou de uma imagem bitmap) | IFontMorseEncoder converte os caracteres numa sequência de símbolos de ponto (.) e traço (-) e mapeia-os para identificadores de glifos da IFont fornecida. |
| Descodificar uma string que já contém símbolos Morse de volta para texto legível | IFontMorseDecoder realiza a operação inversa. |
| Renderizar os glifos codificados diretamente para PNG (ou qualquer formato raster compatível com Aspose.Font) | As sobrecargas que aceitam parâmetros de renderização (LineSpacingType, tamanho da imagem, etc.) criam a imagem por si. |
O recurso foi introduzido em Aspose.Fontfor.NET23.10 (FONTNET‑602 – Suporte para codificação de código Morse).
Por que usá-lo?
- Solução Pure-C# – sem bibliotecas externas, sem dependências no nível do sistema operacional.
- Funciona com qualquer fonte que contenha os glifos necessários (TrueType, OpenType, CFF…).
- A heurística integrada escolhe automaticamente o alfabeto correto (latim, grego, cirílico etc.) quando você o omite.
- Ambos texto → IDs de glifo (úteis para pipelines de renderização personalizados) e IDs de glifo → PNG estão disponíveis imediatamente.
- Totalmente coberto pelo suporte do Aspose (fóruns, documentos, demonstração ao vivo).
Primeiros passos
1 Instale o pacote NuGet
1dotnet add package Aspose.Font2 Adicionar namespaces (C#)
1using Aspose.Font;
2using Aspose.Font.TextUtils;
3using Aspose.Font.Renderers; // for PNG rendering
4using Aspose.Font.Rendering; // for LineSpacingTypeVisão geral da API
1 Fábrica – ponto de entrada
| Método | Retorna | Descrição |
|---|---|---|
TextUtilsFactory. GetFontMorseEncoder() | IFontMorseEncoder | Codificador que funciona com uma instância de IFont |
TextUtilsFactory. GetMorseEncoder() | IMorseEncoder | Codificador que produz strings Morse simples (sem fonte) |
TextUtilsFactory. GetFontMorseDecoder() | IFontMorseDecoder | Descodificador que lê os glifos de volta para o texto |
TextUtilsFactory. GetMorseDecoder() | IMorseDecoder | Descodificador para strings Morse simples |
A fábrica reside em Aspose.Font.Factories.TextUtilsFactory (adicionado em 23.10).
2 interfaces principais
IFontMorseEncoder
1public interface IFontMorseEncoder
2{
3 IEnumerable<int> Encode(string text, IFont font,
4 char dot = '.', char dash = '-');
5
6 IEnumerable<int> Encode(string text, IFont font,
7 MorseAlphabets alphabet,
8 char dot = '.', char dash = '-');
9
10 byte[] Encode(string text, IFont font,
11 double fontSize,
12 LineSpacingType spacing,
13 int width, int height,
14 char dot = '.', char dash = '-');
15
16 byte[] Encode(string text, IFont font,
17 double fontSize,
18 LineSpacingType spacing,
19 int width, int height,
20 MorseAlphabets alphabet,
21 char dot = '.', char dash = '-');
22}IFontMorseDecoder
1public interface IFontMorseDecoder
2{
3 string Decode(string morseText, IFont font,
4 char dot = '.', char dash = '-');
5
6 string Decode(string morseText, IFont font,
7 MorseAlphabets alphabet,
8 char dot = '.', char dash = '-');
9}IMorseEncoder/IMorseDecoder
Eles funcionam apenas com strings brutas (sem fonte envolvida). Use-os quando precisar apenas de sequências de “ponto e traço”.
3 Enum de suporte – MorseAlphabets
| Valor | Guião |
|---|---|
Latim | Inglês e a maioria das línguas ocidentais |
Grego | Letras gregas |
Cirílico | Russo, búlgaro, etc. |
Hebraico | Letras hebraicas |
Árabe | Alfabeto árabe |
Português | Símbolos específicos do português |
Curdo | Letras curdas |
Persa | Letras persas/farsi |
Se você omitir a enumeração, o codificador tentará a detecção automática.
Exemplos práticos
- Codificar para IDs de glifo
1// Load any TrueType/OpenType font.
2IFont font = FontFactory.Open("arial.ttf");
3
4// Get the encoder.
5var encoder = TextUtilsFactory.GetFontMorseEncoder();
6
7// Encode “HELLO WORLD”.
8IEnumerable<int> glyphIds = encoder.Encode(
9 "HELLO WORLD",
10 font);
11
12Console.WriteLine(string.Join(", ", glyphIds));Resultado: uma lista de identificadores de glifos inteiros que podem ser alimentados em pipelines de desenho personalizados.
- Codificar e renderizar um PNG
1double fontSize = 48; // points
2var spacing = RenderingUtils.LineSpacingType.Auto;
3int imgWidth = 800;
4int imgHeight = 200;
5
6byte[] pngBytes = encoder.Encode(
7 "SOS HELP",
8 font,
9 fontSize,
10 spacing,
11 imgWidth,
12 imgHeight);
13
14File.WriteAllBytes("morse.png", pngBytes);O PNG visualiza o código Morse usando o ponto padrão (.) e o traço (-). Altere os parâmetros dot/dash para símbolos alternativos ('·', '—', etc.).
- Decodifique de volta para texto simples
1var decoder = TextUtilsFactory.GetFontMorseDecoder();
2
3string morse = "... --- ..."; // classic SOS
4string result = decoder.Decode(morse, font);
5
6Console.WriteLine(result); // prints: SOSQuando um alfabeto personalizado foi usado durante a codificação, passe o mesmo valor MorseAlphabets para o decodificador.
- Amostra completa de ponta a ponta (console C#)
1using System;
2using System.IO;
3using Aspose.Font;
4using Aspose.Font.TextUtils;
5using Aspose.Font.Rendering;
6
7class Program
8{
9 static void Main()
10 {
11 // Load a font.
12 IFont font = FontFactory.Open("CourierNew.ttf");
13
14 // Factories.
15 var factory = TextUtilsFactory.Instance;
16 var encoder = factory.GetFontMorseEncoder();
17 var decoder = factory.GetFontMorseDecoder();
18
19 const string message = "CALL ME AT 5PM";
20
21 // Encode → PNG.
22 byte[] png = encoder.Encode(
23 message,
24 font,
25 fontSize: 36,
26 spacing: RenderingUtils.LineSpacingType.Auto,
27 width: 900,
28 height: 150);
29
30 File.WriteAllBytes("callme.png", png);
31 Console.WriteLine("PNG created.");
32
33 // Encode → glyph IDs.
34 var ids = encoder.Encode(message, font);
35 Console.WriteLine("Glyph IDs: " + string.Join(", ", ids));
36
37 // Decode a plain Morse string.
38 string morse = "... --- ...";
39 string decoded = decoder.Decode(morse, font);
40 Console.WriteLine($"Decoded '{morse}' → {decoded}");
41 }
42}Execute-o em qualquer projeto .NET Core/.NET Framework – a única dependência externa é Aspose.Font.
Demonstração on-line
Aspose fornece uma demonstração gratuita na web para testar o tradutor sem instalar nada:
Recursos da demonstração:
- Texto ↔︎ Morse ↔︎ Renderização de glifo
- Escolha caracteres de ponto/traço personalizados
- Baixe o PNG gerado ou visualize os IDs dos glifos
Notas de lançamento
Aspose.Font para .NET 23.10 APIs adicionadas:
TextUtilsFactory,IFontMorseEncoder,IFontMorseDecoder,IMorseEncoder,IMorseDecoder, enumeraçãoMorseAlphabets. Nova funcionalidade: “Suporte para codificação em código Morse”.
Quando usar qual sobrecarga
| Situação | Sobrecarga recomendada |
|---|---|
| Necessita apenas de identificadores de glifos para posterior processamento | Encode(string text, IFont font) (ou com alfabeto explícito) |
| Pretende uma imagem sem lidar com o código de renderização | Encode(string text, IFont font, double size, LineSpacingType spacing, int w, int h) |
| Símbolos personalizados de ponto/traço (por exemplo, Unicode “·” e “—”) | Utilize sobrecargas que aceitem char dot e char dash |
| O idioma de origem utiliza um alfabeto não latino e a deteção automática falha | Passe o valor MorseAlphabets apropriado explicitamente |
Resumo
Aspose.Font agora inclui um mecanismo completo de tradução de código Morse que opera tanto no nível de glifo quanto no nível de bitmap. Usando os métodos simples de fábrica, você pode começar instantaneamente a codificar, decodificar e renderizar qualquer texto em dezenas de alfabetos, sem escrever suas próprias tabelas de mapeamento ou lidar com renderização de baixo nível.
Esteja você construindo:
- Um componente personalizado de visualização de sinal
- Uma ferramenta educacional para ensinar comunicação Morse
- Uma etapa de ofuscação de dados que armazena informações como fontes estilizadas
a API oferece controle total enquanto mantém o código limpo, multiplataforma e totalmente compatível.