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:

ObjectivoComo 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ívelIFontMorseDecoder 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?

Primeiros passos

1 Instale o pacote NuGet

1dotnet add package Aspose.Font

2 Adicionar namespaces (C#)

1using Aspose.Font;
2using Aspose.Font.TextUtils;
3using Aspose.Font.Renderers;   // for PNG rendering
4using Aspose.Font.Rendering;   // for LineSpacingType

Visão geral da API

1 Fábrica – ponto de entrada

MétodoRetornaDescrição
TextUtilsFactory. GetFontMorseEncoder()IFontMorseEncoderCodificador que funciona com uma instância de IFont
TextUtilsFactory. GetMorseEncoder()IMorseEncoderCodificador que produz strings Morse simples (sem fonte)
TextUtilsFactory. GetFontMorseDecoder()IFontMorseDecoderDescodificador que lê os glifos de volta para o texto
TextUtilsFactory. GetMorseDecoder()IMorseDecoderDescodificador 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

ValorGuião
LatimInglês e a maioria das línguas ocidentais
GregoLetras gregas
CirílicoRusso, búlgaro, etc.
HebraicoLetras hebraicas
ÁrabeAlfabeto árabe
PortuguêsSímbolos específicos do português
CurdoLetras curdas
PersaLetras persas/farsi

Se você omitir a enumeração, o codificador tentará a detecção automática.

Exemplos práticos

  1.  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.

  1.  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.).

  1.  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: SOS

Quando um alfabeto personalizado foi usado durante a codificação, passe o mesmo valor MorseAlphabets para o decodificador.

  1.  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:

Notas de lançamento

Aspose.Font para .NET 23.10 APIs adicionadas: TextUtilsFactory, IFontMorseEncoder, IFontMorseDecoder, IMorseEncoder, IMorseDecoder, enumeração MorseAlphabets. Nova funcionalidade: “Suporte para codificação em código Morse”.

Quando usar qual sobrecarga

SituaçãoSobrecarga recomendada
Necessita apenas de identificadores de glifos para posterior processamentoEncode(string text, IFont font) (ou com alfabeto explícito)
Pretende uma imagem sem lidar com o código de renderizaçãoEncode(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 falhaPasse 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:

a API oferece controle total enquanto mantém o código limpo, multiplataforma e totalmente compatível.

Have any questions about Aspose.Font?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.