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

پنجشنبه 30 مهر 1394

این مقاله نشان می دهد که چگونه با استفاده از #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 و غیره می باشد.

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

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

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید