چگونه بر روی تصاویر در ASP.NET MVC واترمارک بگذاریم؟ اگر دقت کرده باشید، کلیه تصاویری که در وب سایت توسینسو بارگذاری می شوند دارای Watermark هستند، یعنی به قسمت پایین تصویر یک متن اضافه می شود که به آن Watermark گفته می شود. افزودن Watermark بیشتر برای این است که با کپی کردن تصاویر وب سایت شما، در خود تصویر نام وب سایت درج شده باشد. در این مطلب قصد داریم به شما نحوه افزودن Watermark به تصاویر را در ASP.NET MVC آموزش دهم.فرض کنید که می خواهیم برای Watermark یک متن را به انتهای تصویر اضافه کنیم، برای اینکار ابتدا یک متد به صورت زیر تعریف می کنیم:
public Image AddImageWatermark(Image image, string copyright) { var imgPhoto = image; var phWidth = imgPhoto.Width; var phHeight = imgPhoto.Height; var newImage = new Bitmap(imgPhoto); var grPhoto = Graphics.FromImage(newImage); grPhoto.SmoothingMode = SmoothingMode.AntiAlias; grPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, phWidth, phHeight), 0, 0, phWidth, phHeight, GraphicsUnit.Pixel); var sizes = new[] { 16, 14, 12, 10, 8, 6, 4 }; Font font = null; var size = new SizeF(); for (var i = 0; i < 7; i++) { font = new Font("arial", sizes[i], FontStyle.Bold); size = grPhoto.MeasureString(copyright, font); if ((ushort)size.Width < (ushort)phWidth) break; } var yPixlesFromBottom = (int)(phHeight * .05); var yPosFromBottom = ((phHeight - yPixlesFromBottom) - (size.Height / 2)); var xCenterOfImg = (phWidth / 2); var format = new StringFormat { Alignment = StringAlignment.Center }; var semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0, 0)); grPhoto.DrawString(copyright, font, semiTransBrush2, new PointF(xCenterOfImg + 1, yPosFromBottom + 1), format); var semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255)); grPhoto.DrawString(copyright, font, semiTransBrush, new PointF(xCenterOfImg, yPosFromBottom), format); return newImage; }
کد بالا دو پارامتر به عنوان ورودی می گیرد، یکی تصویری که قرار است watermark به آن اضافه شود و دیگری متنی که می خواهیم بر روی تصویر درج کنیم، خروجی این متد هم یک تصویر به همراه Watermark است. به صورت زیر می توانیم از این کد استفاده کنیم:
var imageWithWatermark = AddImageWatermark(myImage, "وب سایت ITPRO");
با اجرای کد بالا، متن مشخص شده به انتهای تصویر اضافه خواهد شد. امیدوارم که این نکته مورد توجه شما دوستان عزیز قرار گرفته باشد. توسینسو باشید
سلام، شما در هر صورت باید عکس رو در سمت سرور Watermark کنید، می تونید رشته ای که به صورت base64 هست رو به Image تبدیل کنید و Watermark رو بهش اضافه کنید.
برای watermark کردن عکسی که به صورت base 64 در آمده آیا راهی هست ؟
سلام مجدد، شرمنده، درگیر بخش آزمون سایت بودم فراموش کردم جواب بدم، در مورد مشکلی که فرمودید، به این خاطر هست که شما اول باید تصویر رو بارگذاری کنید و بعد ازش استفاده کنید:
آقا احمدی جواب منو بده خیلی وقته منتظرم، خیلی آقایی
من در یک کلاس تعریف کردم
موقع فراخوانی مشکل دارم
آیا درست نوشتم؟
سلام، بهتره که این متد رو داخل یک کلاس قرار بدید و از کلاس یک شئ بسازید و از متد استفاده کنید.
سلام
ممنون از مطالب سایتتون خیلی مفید هستند
فقط متوجه نشدم این کد رو باید به چه شکلی استفاده کنیم
var imageWithWatermark = AddImageWatermark(myImage, "وب سایت ITPRO");
این کد رو در یک اکشن می گذاریم
public Image AddImageWatermark(Image image, string copyright)
{
درسته؟