asp.net | چسباندن لوگو به عکس در هنگام آپلود، با استفاده از System.Drawing namespace

دوشنبه 8 دی 1393

در پروژه ASP.NET ، برای افزودن لوگوی (تصویری یا متنی) به عکس در هنگام آپلود ، می خوایم با استفاده از System.Drawing namespace ؛ از تابع DrawImage() برای چسباندن لوگوی تصویری و از تابع DrawString() برای چسباندن لوگوی متنی بهره ببریم.

asp.net | چسباندن لوگو به عکس در هنگام آپلود، با استفاده از System.Drawing namespace

سلام.
میخوایم به عکسی در پروژه ASP.NET ؛ با استفاده از کتابخانه System.Drawing namespace ؛
از تابع DrawImage() برای اضافه کردن لوگوی تصویری ،
و از تابع DrawString() برای افزودن لوگوی متنی بهره ببریم

 

 

الف -  اضافه کردن System.Drawing namespace :

using System.Drawing; //لازم

 

 

ب - استفاده از توابع DrawImage و DrawString :

در قسمت کدهای مارکآپ :

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">

    <asp:FileUpload ID="FileUpload1" runat="server" />
    <asp:Button ID="Button1" runat="server" Text="افزودن لوگو" OnClick="Button1_Click" />

</asp:Content>

 

در قسمت کدهای سی شارپ :

using System;
using System.Web.UI;
using System.Drawing; //لازم

namespace AddLogoOnImage_asp.net
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //ایجاد شئ بیتمپ از تصویر پست شده(انتخاب شده) برای آپلود
            Bitmap bmpUpload = new Bitmap(FileUpload1.PostedFile.InputStream, false);

            //ایجاد شئ ای از کلاس گرافیکس ، برای دستکاری تصویر انتخاب شده
            Graphics graphicsObj = Graphics.FromImage(bmpUpload);


            //لوگوی متنی
            string txtLogo = "© 1393/10/08";
            //مختصات مکانی لوگوی متنی
            Point positionTextLogo = new Point(5, 5);
            //در نظر گرفتن رنگ
            Brush brush = new SolidBrush(Color.White);
            //چسباندن لوگوی متنی          
            graphicsObj.DrawString(txtLogo, new System.Drawing.Font("tahoma", 16, FontStyle.Bold, GraphicsUnit.Pixel), brush, positionTextLogo);


            //ایجاد شئ بیتمپ از لوگوی تصویری مورد نظر
            Bitmap bmpLogo = new Bitmap(Server.MapPath("Images") + "\\" + "logo.jpg");
            //مختصات مکانی لوگوی تصویری
            Point positionImgLogo = new Point(5, (bmpUpload.Height - (bmpLogo.Height + 5)));
            //چسباندن لوگوی تصویری
            graphicsObj.DrawImage(bmpLogo, positionImgLogo);



            //ذخیره تصویر نهایی در مسیر مورد نظر
            bmpUpload.Save(Server.MapPath("Images") + "\\" + System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName) + ".jpg");
        }
    }
}

نکته !

موقعیت های مکانی لوگوها برای چسباندن روی اندازه های مختلف تصویر ، متفاوت خواهد بود.

این مقاله صرفا جهت معرفی بود. از ایده دیگری درباره موقعیت مکانی لوگوها استفاده نمایید.

 

مرتبط در برنامه نویسان :

asp.net mvc | چسباندن لوگو به عکس در هنگام آپلود، با استفاده از Razor WebImage helper

http://barnamenevisan.org/Articles/Article677.html

http://barnamenevisan.org/Articles/Article2454.html

مرتبط در سایت های دیگر : استفاده از GDI

http://www.codeproject.com/Articles/2927/Creating-a-Watermarked-Photograph-with-GDI-for-NET

 

بهزاد علیزاده

نویسنده 3 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید