269
Chương 7: ASP.NET và Web Form
// Lưu bức hình vào dòng kết xuất.
bitmap.Save(Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Gif);
graphics.Dispose();
bitmap.Dispose();
}
}
Khi lưu bức hình vào dòng kết xuất, bạn sẽ thế chỗ bất kỳ kết xuất nào khác. Vì thế, bạn
không thể sử dụng kỹ thuật này với một trang cũng có chứa Web controls hoặc nội dung
HTML tĩnh. Theo đó, nếu muốn sử dụng một trang phối hợp các bức hình được-tạo-động và
các điều kiểm web, bạn cần “bọc” bức hình được-tạo-động trong một điều kiểm hoặc ghi bức
hình ra ổ đĩa cứng trước khi hiển thị nó.
Nếu muốn lưu file vào ổ đĩa cứng, bạn cần chuyển phần mã tạo dựng bức hình thành một
phương thức độc lập, mà chúng ta sẽ đặt tên là
GenerateBanner
. Kế đó, trong phương thức thụ
lý sự kiện
Page.Load
, bạn kiểm tra xem file đã tồn tại chưa (sử dụng phương thức tĩnh
File.Exists
). Nếu file chưa tồn tại, bạn tạo nó trong bộ nhớ bằng phương thức
GenerateBanner
và lưu nó bằng phương thức
Bitmap.Save
. Nếu file đã tồn tại, bạn chỉ cần nạp
thẳng bức hình này.
Đoạn mã dưới đây sẽ trình bày cách tiếp cận này:
using System;
using System.IO;
using System.Web;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Drawing2D;
public class DynamicGraphic : System.Web.UI.Page {
protected System.Web.UI.WebControls.Image imageControl;
// (Bỏ qua phần mã designer.)
private Bitmap GenerateBanner() {
// Tạo dựng bức hình, sử dụng phần mã trong ví dụ ở trên.
}
private void Page_Load(object sender, System.EventArgs e) {