آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net
0 0

آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net


آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net

در این پست میخواهیم چگونگی نوشتن متن بر روی تصویر با استفاده از ASP.NET و C # را اموزش دهیم.

شاید در سایت ها گاهی تصاویری را آپلود کرده اید و متوجه شدید که پس از آپلود متن نوشته ای رو تصویر آپلود شده قرار داده شده است. این متن ها می تواند برای مشخص شدن نام سایت شما روی تصاویر اختصاصی باشد یا تبلیغات متنی بر وی تصاویر ثبت شده هستند. امروز میخواهیم چگونگی پیاده سازی این روش را با هم بیاموزیم.

ابتدا یک پروژه با نام  Iranganj_Image ایجاد می کنیم.

آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net

سپس یک وب فرم با نام 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);

 

نمایش حاصل کار :

آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net

 

آموزش نوشتن متن بر روی تصویر با استفاده از ASP.NET و C#.Net

دانلود

نویسنده علی بهارلویی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۲ مهر ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۲
قیمت کاربران عضو سایت
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha
نظرات کاربران

  • مهیار

    سلام وقتتون بخیر من از این روش استفاده کردم یسری متن رو میفرستم روی عکسی که تو سایت هستش سایت هم آپلود شده و تو لوکال هاست اجرا نمیشه ولی متاسفانه فونتی که من دادم اجرا نمیشه میشه راهنمایی بکنید که مشکل از چی میتونه باشه؟ ممنون

    پاسخ
    • حسین فتحی

      سلام سورس رو دانلود کنید و تست کنید. اگر فونت‌ خاصی استفاده میکنید باید مسیرش رو مشخص کنید

      پاسخ