• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed c# znak wodny - jak ustalić wielkość czcionki

VPS Starter Arubacloud
+1 głos
370 wizyt
pytanie zadane 1 lipca 2021 w C# przez Nubet Nowicjusz (190 p.)
zamknięte 2 lipca 2021 przez Nubet

Hej, chce zrobić program który będzie dodawał znak wodny (watermark) do zdjęcia, problem polega na tym że w zależności od wysokości i szerokości zdjęcia czcionka powinna mieć odpowiednią wielkość (czym większe zdjęcie tym większa czcionka) tylko mam problem z ułożeniem dpowiedniego algorytmu. poniżej dodaje mój kod (do poprawnego działania trzeba dodać w nugecie System.drawing.Common) 



using System;
using System.Drawing;
using System.IO;

namespace Watermarking
{
    class Program
    {
        public static string imagePath = "";

        static void Main(string[] args)
        {
            
            Console.WriteLine("Podaj sciezke do pliku ");
            imagePath = Console.ReadLine();
 
            string sourceImagePath = imagePath;
            string targetImagepath = Path.GetDirectoryName(imagePath);
            targetImagepath += "\\";
            targetImagepath += Path.GetFileNameWithoutExtension(imagePath) + "_watermarked";
            targetImagepath += Path.GetExtension(imagePath);

            //Wywolanie voida
            AddWatermark(sourceImagePath, "Watermark", targetImagepath);
            Console.WriteLine("Znak wodny zostal dodany");

        }

        public static void AddWatermark(string sourceImage, string text, string targetImage)
        {
            try
            {
                Image img = Image.FromFile(sourceImage, true);

                int width = img.Width;
                int height = img.Height;
                int font_size = 20;

                Point text_starting_point = new Point(width / 4, height / 2);
                Font text_font = new Font("Helvetica", font_size, FontStyle.Bold, GraphicsUnit.Pixel);

                Color color = Color.FromArgb(255, 0, 0);
                SolidBrush brush = new SolidBrush(color);

                Graphics graphics = Graphics.FromImage(img);
                graphics.DrawString(text, text_font, brush, text_starting_point);
                graphics.Dispose();
                
                img.Save(targetImage);
                img.Dispose();

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

 

komentarz zamknięcia: Otrzymałem pomoc

2 odpowiedzi

+2 głosów
odpowiedź 2 lipca 2021 przez VBService Ekspert (251,210 p.)
wybrane 2 lipca 2021 przez Nubet
 
Najlepsza

Możesz spróbować zaznajomić się z np.: 

Graphics.MeasureString Method  [ 1 ]  [ 2 ]

TextRenderer.MeasureText Method  [ 1 ]  [ 2 ]

 

ewentualnie How to determine font size in graphics.DrawString  wink

1
komentarz 2 lipca 2021 przez Nubet Nowicjusz (190 p.)

dzięki heart

0 głosów
odpowiedź 1 lipca 2021 przez reaktywny Nałogowiec (40,650 p.)

Może dynamicznie? Tzn. dostosować do rozmiarów obrazka, tak by tekst zajmował procentowo zawsze taki sam obszar na zdjęciu.

tylko mam problem z ułożeniem dpowiedniego algorytmu

Algorytmu? To jest matematyka z wczesnych klas szkoły podstawowej :)

Podobne pytania

0 głosów
1 odpowiedź 634 wizyt
0 głosów
1 odpowiedź 217 wizyt
pytanie zadane 28 grudnia 2022 w C# przez sisOOO Obywatel (1,370 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...