---
title: "Text inom en bitmaps ramar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/102204-text-inom-en-bitmaps-ramar"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Dino"
published: "2004-04-23T18:34:41.000Z"
updated: "2004-04-23T22:55:08.000Z"
replies: 3
views: 198
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/102204-text-inom-en-bitmaps-ramar"
---

# Text inom en bitmaps ramar

## #1 — Dino, 2004-04-23T18:34Z

Skapar en bitmap och i den skall en string ritas. Textens position skall slumpas fram. Behöver en bra uträkning för det och även så att texten hamnar inom bitmapen. Om tex bitmapen är 200 \* 200 och textens x position blir 190 då kommer ju en del av texten att hamna utanför. Nedan är lite kod att börja med.

```
public static Bitmap WordImage(string text, int width, int height)
        {
            string[] fonts = {"Arial", "Verdana", "Courier New", "Times", "Times New Roman", "Tahoma", "Courier", "Georgia"}; 
            int fSize = new Random().Next(8, 18);
            int posX = new Random().Next(0, width);
            int posY = new Random().Next(0, height) - (fSize / 2);
            
            Font f = new Font(fonts[new Random().Next(0, fonts.Length)], fSize);

            Bitmap bit = new Bitmap(width, height);
            Graphics grap = Graphics.FromImage(bit);
            grap.Clear(Color.Beige);

            grap.DrawString(text, f, Brushes.Red, posX, posY);

            return bit;
        }
```

Permalänk: https://www.webforum.nu/p/102204

## #2 — renholm, 2004-04-23T20:06Z

1\. Ta reda på hur lång strängen kommer att bli
2\. Slumpa positionen utefter strängens längd, dvs slumpa ett värde mellan 0 och 200-strängenslängd.
3\. Relativt klar... :)

Permalänk: https://www.webforum.nu/p/1329683

## #3 — Dino, 2004-04-23T22:15Z

Och hur skulle 1:an gå till. Att ta *text*.Length säger ju ingenting om hur lång texten.

red// Ok, tror jag hittat ett sätt. Lägger upp det om det fungerar.

Permalänk: https://www.webforum.nu/p/1329784

## #4 — Dino, 2004-04-23T22:55Z

Det här verkar funka. :)

```
public static Bitmap WordImage(string text, int width, int height)
        {
            string[] fonts = {"Arial", "Verdana", "Courier New", "Times", "Times New Roman", "Tahoma", "Courier", "Georgia"}; 
            int fSize = new Random().Next(8, 18);
            
            Font f = new Font(fonts[new Random().Next(0, fonts.Length)], fSize);
            
            Bitmap bit = new Bitmap(width, height);
            Graphics grap = Graphics.FromImage(bit);
            grap.Clear(Color.Beige);
            SizeF sf = grap.MeasureString(text, f);

            int posX = new Random().Next(0, width) - Convert.ToInt32(sf.Width);
            int posY = new Random().Next(0, height) - Convert.ToInt32(sf.Height);
            if(posX < 0) posX = width / 2;
            if(posY < 0) posY = height / 2;
            
            grap.DrawString(text, f, Brushes.Red, posX, posY);

            return bit;
        }
```

Permalänk: https://www.webforum.nu/p/1329802

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/102204-text-inom-en-bitmaps-ramar
