Cách chèn logo vào hình ảnh với Asp.Net

Chúng ta có thể bắt gặp rất nhiều website với hình ảnh được chèn logo kiểu đánh dấu bản quyền, để làm việc này có thể dùng một số công cụ chỉnh sửa ảnh như Photoshop để chèn logo vào hình gốc, tuy nhiên mình có thể thực hiện chèn logo vào hình ảnh ngay khi hiển thị trên web bằng Asp.net. Phương pháp này rất phù hợp nếu cần tiết kiệm thời gian và không yêu cầu quá cao về chất lượng hình ảnh.

1. Chuẩn bị & Thực hiện.

- Để làm ví dụ này mình tạo 1 project mới, và cần có thêm 2 cái hình, 1 hình ảnh hiển thì & 1 cái logo 

- Tiếp theo tạo 1 page LogoOnImage.aspx để hiển thị hình ảnh sau khi được chèn logo, để vẽ lại hình ảnh ta cần thêm 2 thư viện sau

using System.Drawing;
using System.Drawing.Imaging;

- Trong sự kiện PageLoad ta viết như sau:

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // Đường dẫn file ảnh. 
                string imageFile = Server.MapPath("~/images/vokhanhthuy.JPG");
                // Đường dẫn file Logo cần chèn
                string logo = Server.MapPath("~/images/logo.png");

                // Tạo đối tượng Bitmap truyền vào đường dẫn File ảnh
                Bitmap myBitmap = new Bitmap(imageFile);
                // Tạo đối tượng Graphic từ Bitmap
                Graphics myGraphics = Graphics.FromImage(myBitmap);

                // Vẽ lại hình ảnh, chèn nội dung mới vào.
                Bitmap myBitmapLogo = new Bitmap(logo);

                myGraphics.DrawImage(myBitmapLogo, new Point(650, 30));

                // Xuất hình ảnh mới
                Response.ContentType = "image/jpeg";
                myBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);

                // Dùng code này nếu lưu ảnh vào ổ cứng của bạn.
                // myBitmap.Save(Server.MapPath("~/images/newImage.jpg"));
            }
        }

- Để xác định vị trí logo cần chèn trên hình ảnh các bạn chú ý đoạn mã dưới đây, với các tham số là tọa độ (position) của logo trên hình ảnh chính.

myGraphics.DrawImage(myBitmapLogo, new Point(650, 30));

- Hình ảnh của mình làm ví dụ width:800 pixcel, nên mình để tọa độ như trên là logo sẽ nằm ở góc trên bên phải của hình, các bạn có thể sửa lại code để linh động hơn hiện thị logo ở góc phải với mọi kích thước ảnh

2. Kết Luận

- Cách này mình thấy khá hay và tiết kiệm thời gian khi muốn đánh dấu logo và hình ảnh hiện thị trên web nếu yêu cầu chất lượng không cao. Với những website đặc thù yêu cầu chất lượng hình tốt thì vẫn nên xử lý hình ảnh bằng Photoshop.

- Các bạn có thể download code ví dụ ở tại đây.

Related Post


Import Excel trong Asp.Net
Wednesday, November 19, 2014
Trong dự án mình tham gia gần đây có một chức năng cần phải lấy dữ liệu từ file excels để đưa vào csdl SQL Sever. Chức năng này khá đơn giản nhưng có vẻ rất hiệu quả trong ứng dụng thực tế nên mình muốn chia sẻ với mọi người...
Sử dụng Asp.net Chart Control để vẽ biểu đồ trên website
Tuesday, October 28, 2014
Sau mấy tuần bận rộn với một đống công việc phải giải quyết, hôm nay được một ngày rảnh rỗi. Lại ngồi viết một bài cho phong phú website của mình, sau nữa là có chỗ để lúc nào cần xem lại copy code cho nhanh (^.^). Ở bài này mình làm một ví dụ về sử dụng Asp.net Chart Control để vẽ biểu đồ trên web, với số liệu thống kê được lấy từ CSDL SQL.
Search

Đăng ký nhận bài mới


Category

Blog Archive