(How to add Watermark Image to an image dynamically while uploading in ASP.NET) – Việc bảo vệ bản quyền đối với các bài viết cả nội dung và hình ảnh luôn được tác giả quan tâm. Vì tác giả bỏ nhiều công sức, thời gian để viết bài mà hoàn toàn không được tôn trọng bản quyền. Hiện có nhiều cách để bảo vệ và kiểm soát bài viết nhưng có 1 cách đơn giản và nhanh chóng để góp một phần trong việc bảo vệ bản quyền. Đó là việc tự động đóng dấu bản quyền vào các hình ảnh khi được Upload, hình ảnh về bản quyền được đặt sẵn vào 1 thư mục và nó sẽ được chèn vào hình ảnh mỗi khi người dùng Upload. Dưới đây là các bước thực hiện.


Nghe những bài hát đỉnh nhất về Thấy cô giáo - Nghe trên Youtube



Code Example C#, Code Example VB.NET
Code Example C#, Code Example VB.NET



- B1: Tạo Project trong Microsoft Visual Studio 2010

B2: Mở file Default.aspx dưới dạng HTML và  nhập mã HTML
C# Code
<%@ PageTitle="Add Watermark Image on Uploaded Image in Asp.Net" Language="C#"MasterPageFile="~/Site.master"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="AddWatermarkImageonUploaded._Default"%>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <table cellpadding="3"cellspacing="5"border="0"width="50%">
        <tr>
            <td>
                <divclass="panel panel-default">
                    <divclass="panel-heading">
                        <asp:label id="lblHeader" runat="server" Text="Add Watermark Image on Uploaded Image in Asp.Net"></asp:label>
                    </div>
                    <divclass="panel-body">
                        <table cellspacing="2"cellpadding="3"border="0"width="100%">
                            <tr>
                                <td style="width:25%;">
                                    <asp:label id="plFileName"runat="server"Text="File Name (*)"></asp:label>
                                </td>
                                <td>
                                    <asp:FileUpload ID="FileUpload"runat="server"Width="150px"/><br />
                                    <asp:CustomValidator id="valFile"runat="server"CssClass="NormalRed"ValidationGroup="validate"OnServerValidate="valFile_ServerValidate"ErrorMessage="You Must Upload A File" Display="Dynamic"></asp:CustomValidator>
                                    <asp:CustomValidator id="valType"runat="server"CssClass="NormalRed"ValidationGroup="validate"OnServerValidate="valType_ServerValidate"ErrorMessage="You must upload a file that is either a JPG" Display="Dynamic"></asp:CustomValidator>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <asp:label id="lblMessage"runat="server"Visible="false"></asp:label><br />
                                </td>
                            </tr>
                        </table>
                    </div>
                    <divclass="modal-footer">
                        <div class="btn-group">
                            <asp:LinkButton id="cmdUpload"runat="server"CssClass="btn btn-small" OnClick="cmdUpload_Click" ValidationGroup="validate" Causesvalidation="true">
                                <i class="icon-upload"></i>&nbsp;&nbsp;<asp:label id="lblUpload" runat="server" Text="Upload"></asp:label>
                            </asp:LinkButton>
                        </div>
                    </div>
                </div>
            </td>
        </tr>       
    </table>
</asp:Content>
VB.NET Code
<%@ PageTitle="Add Watermark Image on Uploaded Image in Asp.Net" Language="vb"MasterPageFile="~/Site.Master"AutoEventWireup="false"CodeBehind="Default.aspx.vb"Inherits="AddWatermarkImageonUploaded._Default"%>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <table cellpadding="3"cellspacing="5"border="0"width="50%">
        <tr>
            <td>
                <divclass="panel panel-default">
                    <divclass="panel-heading">
                        <asp:label id="lblHeader" runat="server" Text="Add Watermark Image on Uploaded Image in Asp.Net"></asp:label>
                    </div>
                    <divclass="panel-body">
                        <table cellspacing="2"cellpadding="3"border="0"width="100%">
                            <tr>
                                <td style="width:25%;">
                                    <asp:label id="plFileName"runat="server"Text="File Name (*)"></asp:label>
                                </td>
                                <td>
                                    <asp:FileUpload ID="FileUpload" runat="server" Width="150px" /><br />
                                    <asp:CustomValidator id="valFile"runat="server"CssClass="NormalRed"ValidationGroup="validate"ErrorMessage="You Must Upload A File" Display="Dynamic"></asp:CustomValidator>
                                    <asp:CustomValidator id="valType"runat="server"CssClass="NormalRed"ValidationGroup="validate"ErrorMessage="You must upload a file that is either a JPG" Display="Dynamic"></asp:CustomValidator>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <asp:label id="lblMessage"runat="server"Visible="false"></asp:label><br />
                                </td>
                            </tr>
                        </table>
                    </div>
                    <divclass="modal-footer">
                        <div class="btn-group">
                            <asp:LinkButton id="cmdUpload"runat="server"CssClass="btn btn-small" ValidationGroup="validate" Causesvalidation="true">
                                <i class="icon-upload"></i>&nbsp;&nbsp;<asp:label id="lblUpload" runat="server" Text="Upload"></asp:label>
                            </asp:LinkButton>
                        </div>
                    </div>
                </div>
            </td>
        </tr>       
    </table>
</asp:Content>

B3: Viết Code cho file Default.aspx
C# Code
//Visit http://www.laptrinhdotnet.com for more ASP.NET Tutorials
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Diagnostics;
using System.Web.UI;
using System.Web;
using System.Drawing;
using System.Web.UI.WebControls;

namespace AddWatermarkImageonUploaded
{

    public partial class _Default : System.Web.UI.Page
    {

        #region"Private Members"

        private stringFilePath;
        private stringFileFilter = "jpg,jpeg";

        #endregion

        #region"Private Methods"

        protected stringUploadFile(FileUpload Upload)
        {
            string fileName = "";
            string fileExtension = "";
            string ImagePath = Server.MapPath("Images") + "\\"+ "Copyright.png";
            if (File.Exists(ImagePath))
            {
                Bitmap bmpStamp = new Bitmap(ImagePath);
                Bitmap bmpUpload = new Bitmap(Upload.PostedFile.InputStream, false);
                Graphics graphicsObj = Graphics.FromImage(bmpUpload);
                Point postionWaterMark = new Point((bmpUpload.Width / 15), (bmpUpload.Height / 15));
                graphicsObj.DrawImage(bmpStamp, postionWaterMark);

                SetFilePath();
                fileExtension = Path.GetExtension(Upload.FileName).Replace(".", "");
                fileName = Upload.FileName.Substring(Upload.FileName.LastIndexOf("\\\\") + 1);
                fileName = fileName.Substring(0, fileName.LastIndexOf(fileExtension)) + fileExtension;
                FilePath = FilePath + fileName;
                bmpUpload.Save(FilePath);
            }
            return fileName;
        }

        private voidSetFilePath()
        {
            FilePath = MapPath("~/Upload/");
            //Create Folder
            if (!Directory.Exists(FilePath))
            {
                Directory.CreateDirectory(FilePath);
            }
        }

        #endregion

        #region"Event Handles"

        protected voidcmdUpload_Click(object sender, System.EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    string fileName = "";
                    if (!string.IsNullOrEmpty(FileUpload.PostedFile.FileName))
                    {
                        fileName = UploadFile(FileUpload);
                        if (!string.IsNullOrEmpty(fileName))
                        {
                            lblMessage.Text = "Upload file Sucessfully";
                            lblMessage.ForeColor = System.Drawing.Color.Green;
                            lblMessage.Visible = true;
                        }
                    }
                }
                catch (Exceptionex)
                {
                    lblMessage.Text = ex.Message;
                    lblMessage.ForeColor = System.Drawing.Color.Red;
                    lblMessage.Visible = true;
                    return;
                }
            }
        }

        protected voidvalFile_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (FileUpload.PostedFile != null)
            {
                if (FileUpload.PostedFile.ContentLength > 0)
                {
                    args.IsValid = true;
                }
                else
                {
                    args.IsValid = false;
                }
            }
        }

        protected voidvalType_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (FileUpload.PostedFile != null)
            {
                lblMessage.Visible = false;
                if (FileUpload.PostedFile.ContentLength > 0)
                {
                    string[] arr = FileUpload.PostedFile.FileName.Split(Convert.ToChar('.'));
                    string FileType = arr[arr.Length - 1].ToLower();
                    valType.ErrorMessage = "You must upload a file that is either a JPG, JPEG";
                    if (FileFilter.IndexOf(FileType) > -1)
                    {
                        args.IsValid = true;
                    }
                    else
                    {
                        args.IsValid = false;
                    }
                }
                else
                {
                    args.IsValid = false;
                }
            }
        }

        #endregion
    }
}
VB.NET Code
'Visit http://www.laptrinhdotnet.com for more ASP.NET Tutorials
Imports System.IO
Imports System.Drawing

Namespace AddWatermarkImageonUploaded

    Public Class _Default
        Inherits System.Web.UI.Page

#Region "Private Members"

        Private FilePath As String = ""
        Private FileFilter AsString = "jpg"

#End Region

#Region "Private Methods"

        Protected FunctionUploadFile(ByVal Upload As FileUpload) As String
            Dim fileName As String = ""
            Dim fileExtension As String = ""
            Dim ImagePath As String = Server.MapPath("Images") + "\" + "Copyright.png"
            If File.Exists(ImagePath) Then
                Dim bmpStamp AsNew Bitmap(ImagePath)
                Dim bmpUpload AsNew Bitmap(Upload.PostedFile.InputStream, False)
                Dim graphicsObj AsGraphics = Graphics.FromImage(bmpUpload)
                Dim postionWaterMark As New Point((bmpUpload.Width / 15), (bmpUpload.Height / 15))
                graphicsObj.DrawImage(bmpStamp, postionWaterMark)

                SetFilePath()
                fileExtension = Replace(Path.GetExtension(Upload.FileName), ".", "")
                fileName = Upload.FileName.Substring(Upload.FileName.LastIndexOf("\\") + 1)
                fileName = fileName.Substring(0, fileName.LastIndexOf(fileExtension)) & fileExtension
                FilePath = FilePath + fileName
                bmpUpload.Save(FilePath)
            End If
            Return fileName
        End Function

        Private SubSetFilePath()
            FilePath = MapPath("~/Upload/")
            'Create Folder
            If Not Directory.Exists(FilePath) Then
                Directory.CreateDirectory(FilePath)
            End If
        End Sub

#End Region

#Region "Event Handles"

        Private SubcmdUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) HandlescmdUpload.Click
            If Page.IsValid Then
                Try
                    Dim fileName AsString = ""
                    If FileUpload.PostedFile.FileName <> "" Then
                        fileName = UploadFile(FileUpload)
                        If fileName <> ""Then
                            lblMessage.Text = "Upload file Sucessfully"
                            lblMessage.ForeColor = System.Drawing.Color.Green
                            lblMessage.Visible = True
                        End If
                    End If
                Catch ex AsException
                    lblMessage.Text = ex.Message
                    lblMessage.ForeColor = System.Drawing.Color.Red
                    lblMessage.Visible = True
                    Exit Sub
                End Try
            End If
        End Sub

        Private SubvalFile_ServerValidate(ByVal source As System.Object, ByVal args AsSystem.Web.UI.WebControls.ServerValidateEventArgs) Handles valFile.ServerValidate
            Try
                If Not(FileUpload.PostedFile Is Nothing) Then
                    If (FileUpload.PostedFile.ContentLength > 0) Then
                        args.IsValid = True
                        Return
                    End If
                End If
                args.IsValid = False
            Catch exc As Exception

            End Try
        End Sub

        Private SubvalType_ServerValidate(ByVal source As System.Object, ByVal args AsSystem.Web.UI.WebControls.ServerValidateEventArgs) Handles valType.ServerValidate
            Try
                If Not(FileUpload.PostedFile Is Nothing) Then
                    lblMessage.Visible = False
                    If (FileUpload.PostedFile.ContentLength > 0) Then
                        Dim arr As String() = FileUpload.PostedFile.FileName.Split(Convert.ToChar("."))
                        Dim fileType As String = arr(arr.Length - 1).ToLower()
                        valType.ErrorMessage = "You must upload a file that is either a JPG, JPEG"
                        If FileFilter <> ""And Not InStr("," & FileFilter.ToLower, "," & fileType.ToLower) = 0 Then
                            args.IsValid = True
                            Return
                        Else
                            args.IsValid = False
                        End If
                        args.IsValid = False
                    End If
                End If
            Catch exc As Exception

            End Try
        End Sub

#End Region

    End Class

End Namespace

Code Example C#, Code Example VB.NET
Code Example C#, Code Example VB.NET



Chúc các bạn thành công!

Quang Bình

0 comments Blogger 0 Facebook

Post a Comment

 
lập trình đốt nét © 2013. All Rights Reserved. Powered by Blogger
Top