webForumDet fria alternativet

DrawString

.NETur .NET

5 svar · 251 visningar · startad av icaaq

Medlem sedan okt. 20005 273 inlägg
Frågan#1

Hej.
Jag skulle vilja veta hur jag ska bete mig för att jag ska få in lite linebreaks i en text som jag lägger in i en bild med DrawString.

Följande gäller, jag har skapat en class som skapar en bild. (här)
Texten som ska skrivas i den classen skriver jag in i en textbox och sedan skickar jag med den som en QueryString som jag har HtmlDecodat.

Men jag vet som sagt inte hur jag ska bete mig för att jag ska få med mina linebreaks :OO. Jag skulle vara tacksam för alla olika lösningar/tips.

mv icaaq

Medlem sedan maj 20012 812 inlägg
#2

Om det inte följer med automatiskt så får du själv "räkna" fram de.

Börja med att skapa en Array av din text som du splitar på Environment.NewLine.

När det är gjort så är det bara att skriva ut en post array som en egen linje. När du alltså kommer till linje 2 så får du räkna fram vilken position den skall ha i texten, likadant med linje 3 osv osv..

Medlem sedan sep. 20011 914 inlägg
#3

Har jobbat alldeles för lite med Imaging, men här är en fuling lösning tills någon med mer förstånd svarar.

string s = "Hej alla glada.<br/>Titta en<br/>hund.".Replace("<br/>", "¤");
string[] arr = s.Split('¤');

Bitmap bit = new Bitmap(300, 300);
Graphics gr = Graphics.FromImage(bit);
gr.Clear(Color.Beige);

int fSize = 18;
Font f = new Font("Arial", fSize);
            
for(int i = 0; i < arr.Length; i++)
{
   gr.DrawString(arr[i], f, Brushes.Red, 0, fSize * i);
}
            
bit.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
gr.Dispose();
bit.Dispose();
Medlem sedan okt. 20005 273 inlägg
#4

Tack så mycket för svaren.....ni väntade i 49 minuter och sedan svarade ni samtidigt ;)

Jag ska testa era nästan lika förslag imorgon......

mv icaaq

Medlem sedan okt. 20005 273 inlägg
#5

Gladh skrev:

Börja med att skapa en Array av din text som du splitar på Environment.NewLine

Hur åstadkommer jag detta? jag har tror jag har testat det mesta....

mv icaaq

Medlem sedan jan. 2004501 inlägg
#6

Hmz...asså jag vet inte om det är detta du är ute efter... Men måste den ligga i en array?

Annars är lösningen tämligen enkel...
string minString = "Hej,<br/>Jag är snäll"
minString.Replace("<br/>", Environment.NewLine)

Gör om koden ovan, vet dock inte om det kommer funka.

string s = "Hej alla glada.<br/>Titta en<br/>hund.";
string[] arr = s.Split(Envirotment.NewLine);

Bitmap bit = new Bitmap(300, 300);
Graphics gr = Graphics.FromImage(bit);
gr.Clear(Color.Beige);

int fSize = 18;
Font f = new Font("Arial", fSize);
            
for(int i = 0; i < arr.Length; i++)
{
   gr.DrawString(arr[i], f, Brushes.Red, 0, fSize * i);
}
            
bit.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
gr.Dispose();
bit.Dispose();
129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)