نوشتن متن بر روی تصویر توسط #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 تشکر