C sharp - Trabajo con imágenes en C#

 
Vista:
Imágen de perfil de Arturo
Val: 5
Ha aumentado su posición en 8 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Trabajo con imágenes en C#

Publicado por Arturo (2 intervenciones) el 06/03/2021 01:20:09
Estoy tratando de "escribir" texto en una imagen expecifica y he tenido alguna que otra dificultad, me explico:
he usado las librerias Magick.NET, ImageProcessor y Sixlabors Imagesharp y no he podido conseguir el resultado que deseo, uso c# 8, net 4.8, winforms.
Me podrían ayudar con esto:
Lo que necesito es conger una imagen, transformarla a un tamaño especifico y escribir texto en una posición especifica de la imagen ya transformada con el tipo de letra, el tamaño y el estilo especifico.
Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 326
Plata
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Trabajo con imágenes en C#

Publicado por Miguel (143 intervenciones) el 08/03/2021 16:00:04
Agrega el codigo que lleves hasta el momento,
asi no se pueden sugerir cambios.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Arturo
Val: 5
Ha aumentado su posición en 8 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Trabajo con imágenes en C#

Publicado por Arturo (2 intervenciones) el 09/03/2021 06:25:02
Estas librerias ( ImageProcessor y Sixlabors Imagesharp) las descarte porque no soportan el trabajo con espacios de color distinto al RGB y/o el trabajo con texto es casi nulo.
Actualmente estoy usando Magick.NET-Q16-AnyCPU.7.23.0
Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FileInfo A = new FileInfo(Path.Combine(Environment.CurrentDirectory, "A.jpg")); //imagen de entrada
FileInfo B = new FileInfo(Path.Combine(Environment.CurrentDirectory, "B.jpg")); //imagen de salida
using (var image = new MagickImage(A))
{
    var readSettings = new MagickReadSettings
    {
//----- Aqui es donde tengo problemas ----------------------------------------------------
        Font = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "DINPro-CondLight.otf"),
        FontFamily = "DIN Pro Cond Light",
//---------------------------------------------------------------------------------------------
        FillColor = MagickColors.Gold,
        TextGravity = Gravity.Center,
        FontStyle = FontStyleType.Italic | FontStyleType.Bold,
        //TextKerning = -5,
        BackgroundColor = MagickColors.DarkRed,
        FontPointsize = 27,
        TextAntiAlias = true,
        Height = 40, // height of text box
        Width = 496 // width of text box
    };
    string text = "Texto de Ejemplo";
    using (var label = new MagickImage($"caption:{text}", readSettings))
    {
        label.ColorSpace = image.ColorSpace;
        label.Density = image.Density;
        label.BitDepth(image.BitDepth());
        image.Composite(label, 20, 480, CompositeOperator.Over);
    }
    image.Write(B);
}

con esta libreria funciona bastante bien hasta que uso una fuente que no es del sistema (Windows),
cuando es asi usa la fuente por defecto Arial.
He probadon con otros ejemplos ejecutando "Drawables":

1
2
3
4
5
6
7
8
9
10
11
string text = "Texto de Ejemplo";
new Drawables()
    .Density(new PointD(image.Density.X, image.Density.Y))
    .FillColor(MagickColors.Gold)
    .Font("DIN Pro Cond Light") //aqui configuro la fuente y tengo problemas
    .FontPointSize(27)
    .Gravity(Gravity.West)
    .TextAntialias(true)
    .TextAlignment(TextAlignment.Center)
    .Text(10, 500, text)
    .Draw(image);


y pasa lo mismo.
Alguna solución sería de mucha ayuda. Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar