نوشتن متن بر روی تصویر توسط #C درASP.Net

این مقاله نشان می دهد که چگونه با استفاده از #C و ASP.NET رو عکس متنی درج کنیم. در این جا از تعدادی توابع کتابخانه ای و متدهای رایج استفاده کرده ایم.

نوشتن متن بر روی تصویر توسط #C درASP.Net

کلاس Image و کلاس Bitmap

کلاس Image یکی از مثال های کلاس Abstract است.

کلاس Bitmap یک پیاده سازی از کلاس Image است و از کلاس Abstract ارث بری می کند.

بعد از پیاده سازی می توانیم قابلیت های کلاس Image را در کلاس Bitmap داشته باشیم.

کد #C

کد زیر برای نوشتن متن بر روی عکس مورد استفاده قرار می گیرد. ما می توانیم نحوه کارکرد آن را بر اساس نیازمندی خود تغییر دهیم.

//creating a image object
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image 
//draw the image object using a Graphics object
Graphics graphicsImage = Graphics.FromImage(bitmap);
 
//Set the alignment based on the coordinates   
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
 
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;
 
//Set the font color/format/size etc..  
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//direct color adding
Color StringColor2 = System.Drawing.ColorTranslator.FromHtml("#e80c88");//customise color adding
string Str_TextOnImage = "Happy";//Your Text On Image
string Str_TextOnImage2 = "Onam";//Your Text On Image
 
graphicsImage.DrawString(Str_TextOnImage, new Font("arial", 40,
FontStyle.Regular), new SolidBrush(StringColor), new Point(268, 245),
stringformat); Response.ContentType = "image/jpeg";
 
graphicsImage.DrawString(Str_TextOnImage2, new Font("Edwardian Script ITC", 111,
FontStyle.Bold), new SolidBrush(StringColor2), new Point(145, 255),
stringformat2); Response.ContentType = "image/jpeg";
 
bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);

در ادامه کد بالا را به صورت جزئی مورد بررسی قرار می دهیم:

Graphics و Bitmap

یک Bitmap شی ای است که برای کار با تصاویر استفاده شده و بر اساس پیکسل تعریف شده است، شما می توانید شی image را با شی Graphics بکشید. برای درک بیشتر کد زیر را بررسی کنید.

//creating a image object
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("onam.jpg")); // set image 
//draw the image object using a Graphics object
Graphics graphicsImage = Graphics.FromImage(bitmap);

قالب بندی رشته (Formatting the string)

 در اینجا تراز بندی(Alignment) متن را بر اساس مختصات تغییر می دهیم:

//Set the alignment based on the coordinates   
StringFormat stringformat = new StringFormat();
stringformat.Alignment = StringAlignment.Far;
stringformat.LineAlignment = StringAlignment.Far;
 
StringFormat stringformat2 = new StringFormat();
stringformat2.Alignment = StringAlignment.Center;
stringformat2.LineAlignment = StringAlignment.Center;

متن بر روی تصویر

رنگ، اندازه  و فرمت قلم را در اینجا تنظیم می کنیم.

string Str_TextOnImage = "Happy";//Your Text On Image
string Str_TextOnImage2 = "Onam";//Your Text On Image
 
graphicsImage.DrawString(Str_TextOnImage, new Font("arial", 40,
FontStyle.Regular), new SolidBrush(StringColor), new Point(268, 245),
stringformat); Response.ContentType = "image/jpeg";
 
graphicsImage.DrawString(Str_TextOnImage2, new Font("Edwardian Script ITC", 111,
FontStyle.Bold), new SolidBrush(StringColor2), new Point(145, 255),
stringformat2); Response.ContentType = "image/jpeg";

رنگ رشته

اضافه کردن رنگ رشته با دو روش انجام می شود:

Color StringColor = System.Drawing.Color.Red;//direct color adding  
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea");//customise color adding  

Namespace

using System.Drawing;
using System.Drawing.Imaging;

Namespace بالا شامل کتابخانه های Graphics، Bitmaps، Image Editing ،Alignment و غیره می باشد.

خروجی به صورت زیر می شود:

فایل های ضمیمه