2014-01-23 3 views
0

Мне нужно иметь массив строк, например: a[] = {A,B,C,...,Z}, а затем случайным образом выбрать одну букву из массива и применить шрифт из каталога Windows на нем, а затем визуализировать эту конкретную букву в виде растрового изображения изображение с определенной шириной и высотами для пользователя (например, отобразите его как растровое изображение в окне изображения в моей форме).Преобразование символов в растровое изображение C#

+6

Давайте посмотрим, что у вас есть на данный момент ... – DonBoitnott

+0

Мне действительно нужен код, который может выполнять эту работу, если вы можете мне помочь. спасибо – CowBoy

+0

@CowBoy: Какой бит вы застряли? Вам нужно сузить свой вопрос, чтобы ясность, если вы не знаете, как выбрать случайный элемент из массива, создавать изображения, помещать текст в изображения, задавать размер шрифта, выводить пользователю и т. Д. Есть так много частей на ваш вопрос, что я бы предположил, что у вас есть хоть какое-то представление о некоторых из них, так что делайте, что можете. Отправьте код, который у вас есть, и где пробел в том, что останавливает вас, и мы можем помочь. – Chris

ответ

2

Эй, если я понимаю, вы правы вам нужно что-то вроде этого:

//Create String-Array 
string[] a = {"A", "B", "C"}; 

//Create a Image-Object on which we can paint 
Image bmp = new Bitmap(100, 100); 

//Create the Graphics-Object to paint on the Bitmap 
Graphics g = Graphics.FromImage(bmp); 

//Here we get the random string 
//Random.Next() gives us the next integer value 
//Because we dont want to get IndexOutOfBoundException we give the Array length to the Next method 
//So just the numbers from 0 - Array.Length can be choosen from Next method 
string randomString = a[new Random().Next(a.Length)]; 

//Your custom Font (6f = 6px)! 
Font myFont = new Font("Arial", 6f) 

//Get the perfect Image-Size so that Image-Size = String-Size 
SizeF size = g.MeasureString(randomString, myFont); 
PointF rect = new PointF(size.Width, size.Height);  

//Use this to become better Text-Quality on Bitmap. 
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; 
g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
g.PixelOffsetMode = PixelOffsetMode.HighQuality; 

//Here we draw the string on the Bitmap 
g.DrawString(randomString, myFont, new SolidBrush(Color.Black), rect); 

Вы можете использовать объект BMP в вашей программе. Например:

picturebox.Image = bmp; 

Я надеюсь, что вы можете понять это сейчас :) Если у вас есть проблемы, чтобы понять Objectdesign вы должны прочитать книгу на первой. Это бесплатно;) http://openbook.galileocomputing.de/visual_csharp_2012/

Не стесняйтесь связываться со мной. приветствует

+0

благодарим вас за код, я думаю, это тот, который я ищу, не могли бы вы добавить комментарий к коду, чтобы лучше понять? также дает ли это изображение с растровым изображением и где оно отображает изображение? он сохраняет изображение где угодно? – CowBoy

+0

@CowBoy отредактирован;) – Sebi

+0

Могу ли я спросить вас, что такое «6f» на последней строке? и если я получу его правильно, этот код преобразует, например, символ «A» в файл растрового изображения? поэтому bmp является черным пикселем и в то время как изображение? – CowBoy

Смежные вопросы