نوشتن متن بر روی تصویر توسط #C درASP.Net
پنجشنبه 30 مهر 1394این مقاله نشان می دهد که چگونه با استفاده از #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 و غیره می باشد.
خروجی به صورت زیر می شود:

- ASP.net
- 3k بازدید
- 5 تشکر