آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net
آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net
در این پست میخواهیم چگونگی نوشتن متن بر روی تصویر با استفاده از ASP.NET و C # را اموزش دهیم.
شاید در سایت ها گاهی تصاویری را آپلود کرده اید و متوجه شدید که پس از آپلود متن نوشته ای رو تصویر آپلود شده قرار داده شده است. این متن ها می تواند برای مشخص شدن نام سایت شما روی تصاویر اختصاصی باشد یا تبلیغات متنی بر وی تصاویر ثبت شده هستند. امروز میخواهیم چگونگی پیاده سازی این روش را با هم بیاموزیم.
ابتدا یک پروژه با نام Iranganj_Image ایجاد می کنیم.
سپس یک وب فرم با نام Default به پروژه اضافه میکنیم. داخل قسمت کاربری ما کدنویسی انجام نمی دهیم ولی توجه داشته باشید برای پویا کردن تصاویر باید شما آپلود را اضافه کنید تا تصاویر مختلفی را که میخواهیم اضافه کنید ما اینجا با تصاویر ثابت کار میکنیم.
در قسمت کد نویسی سمت سرور ما ابتدا فضای نام های زیر را اضافه میکنیم.
using System.Drawing; using System.Drawing.Imaging;
برای دریافت مسیر تصویر و تعریف فرمت بیت مپ برای تصویر کد زیر را اضافه میکنیم.
System.Drawing.Image bitmap = (System.Drawing.Image)Bitmap.FromFile(Server.MapPath("url.jpg")); Graphics graphicsImage = Graphics.FromImage(bitmap);
و در ادامه برای تعریف فرمت متن هم باید کدهای زیر را بنویسیم.
StringFormat stringformat = new StringFormat(); stringformat.Alignment = StringAlignment.Far; stringformat.LineAlignment = StringAlignment.Far; StringFormat stringformat2 = new StringFormat(); stringformat2.Alignment = StringAlignment.Center; stringformat2.LineAlignment = StringAlignment.Center;
سپس برای تعریف خاصیت های متنی از جمله نوع فونت و رنگ و اندازه و ... برای رشته متنی باید به صورت زیر کد نویسی می کنیم.
Color StringColor = System.Drawing.ColorTranslator.FromHtml("#933eea"); Color StringColor2 = System.Drawing.ColorTranslator.FromHtml("#fff"); string Str_TextOnImage = "ایران گنج"; string Str_TextOnImage2 = "سایت تخصصی"; graphicsImage.DrawString(Str_TextOnImage, new Font("Tahoma", 30, FontStyle.Regular), new SolidBrush(StringColor), new Point(509, 130), stringformat); Response.ContentType = "image/jpeg"; graphicsImage.DrawString(Str_TextOnImage2, new Font("Tahoma", 30, FontStyle.Bold), new SolidBrush(StringColor2), new Point(530, 70), stringformat2); Response.ContentType = "image/jpeg";
توجه کنید که رشته متن ما اینجا دو تا می باشد . شما هر تعداد رشته که میخواهید باید مانند کدهای بالا برای آن بنویسید.
نکته ای هم که باید دقت کنید می توانید به جای متن آماده مانند بالا تکست باکس هایی را اضافه و شناسه آن تکست باکس را معرفی کنید تا هرنوع متنی که مورد نظر هست را به صورت پویا اضافه کنید.
محل قرار گیری متن را ها با point میتوانید تغییر دهید.
در آخر هم برای ذخیره تغییرات روی تصویر کد زیر را اضافه می کنیم.
bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
نمایش حاصل کار :
نظر / سوال