Tải bản đầy đủ (.docx) (46 trang)

Đồ án chia sẻ hình ảnh trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.24 MB, 46 trang )

ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ CÁC HỆ THỐNG THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI: XÂY DỰNG WEBSITE CHIA SẺ HÌNH ẢNH
TRỰC TUYẾN
Giáo viên hướng dẫn: Ths Đỗ Thanh Thủy
Sinh viên: Nguyễn Đình Sơn
Lớp: Mạng máy tính và truyền thông
Hà Nội, 04/2015
LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời tri ân tới toàn thể các Thầy Cô trong Khoa Công
nghệ thông tin - Trường Đại học Giao thông vận tải, những người đã truyền hết tâm
huyết và lòng nhiệt tình của mình cho chúng em trong suốt bốn năm học vừa qua tại
ngôi trường này. Những kiến thức mà Thầy Cô đã truyền thụ cho chúng em là vô
giá và sẽ là hành trang cho chúng em trong suốt đường đời.
Em xin gửi lời cảm ơn sâu sắc tới Cô Đỗ Thanh Thủy và Thầy Đoàn Minh
Phương đã trực tiếp hướng dẫn, nhận xét, tận tình giúp đỡ em trong suốt quá trình
thực hiện Đồ án tốt nghiệp.
Cuối cùng em xin gửi lời cảm ơn đến gia đình, người thân, bạn bè đã giúp đỡ,
động viên em rất nhiều trong quá trình học tập và thực hiện Đồ án tốt nghiệp.
Sinh viên
Nguyễn Đình Sơn
MỤC LỤC
LỜI NÓI ĐẦU
Với mong muốn phát triển một website để người dùng chia sẻ hình ảnh cá nhân,
lưu giữ những khoảnh khắc đẹp trong cuộc sống và hơn thế nữa là để kết nối cộng
đồng trực tuyến, chính vì thế, trong đồ án này, em đã lựa chọn đề tài phát triển một


website chia sẻ hình ảnh trực tuyến.
Bố cục đồ án như sau:
Lời nói đầu
- Chương 1: Giới thiệu chung
- Chương 2: Phân tích và thiết kế cơ sở dữ liệu
- Chương 3: Xây dựng website chia sẻ hình ảnh trực tuyến
Kết luận
Trong quá trình nghiên cứu và thực hiện đồ án với quyết tâm cao nhưng do hạn
chế về kinh nghiệm và kiến thức nên đồ án của em chắc chắn sẽ không thể tránh
khỏi những thiếu xót. Em rất mong nhận được ý kiến đóng góp từ Thầy Cô và các
bạn để đồ án được hoàn thiện hơn.
Sinh viên
Nguyễn Đình Sơn

Xây dựng website chia sẻ hình ảnh trực tuyến
CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1. Mục đích, yêu cầu
- Mục đích: Xây dựng website chia sẻ hình ảnh trực tuyến trên ngôn ngữ lập trình
PHP giúp người dùng Internet, đặc biệt là những người đam mê nhiếp ảnh, yêu
thích những bức ảnh đẹp có thể lưu giữ, chia sẻ những hình ảnh, những khoảnh
khắc đẹp trong cuộc sống với tất cả mọi người.
- Yêu cầu: Website được xây dựng trên ngôn ngữ lập trình PHP, hoạt động tốt trên
mọi trình duyệt, thực hiện tốt các chức năng như trong phân tích thiết kế.
1.2. Phạm vi đề tài
- Website có thể được ứng dụng rộng rãi với mọi người dùng Internet.
1.3. Các kết quả dự kiến sẽ đạt được
- Về công nghệ: Hiểu và biết cách sử dụng một số hàm hay được sử dụng của thư
viện GD trong PHP để resize hình ảnh người dùng tải lên.
- Về sản phẩm: website sau khi hoàn thành dự kiến sẽ đạt được các kết quả sau:
 Website responsive thân thiện, dễ sử dụng với người dùng.

 Xây dựng thành công website chia sẻ hình ảnh trực tuyến với các chức năng như
upload ảnh, tạo album ảnh, quản lý thông tin cá nhân thành viên, đăng nhập,
đăng ký thành viên,…
1.4. Công nghệ, công cụ, ngôn ngữ lập trình
- Công nghệ: Sử dụng bootstrap để thiết kế giao diện responsive cho website.
Jquery kết hợp ajax được áp dụng vào các chức năng như đăng nhập, đăng ký thành
viên, upload hình ảnh, bình luận hình ảnh,… để tăng hiệu xuất website, tăng tính
tương tác của người dùng với website. Sử dụng thư viện GD trong PHP để xử lý
hình ảnh.
- Công cụ: Netbeans IDE 8.0.2, Adobe Photoshop CS6.
- Ngôn ngữ lập trình: PHP, MySQL
1.5. Khảo sát tình hình
Như chúng ra đã biết, từ lâu, chia sẻ ảnh đã trở thành nhu cầu thiết yếu của
người dùng Internet trên toàn thế giới. Nắm bắt được vấn đề đó, hàng loạt các
website chia sẻ hình ảnh trực tuyến đã ra đời giúp người dùng tiết kiệm băng thông,
lưu trữ, chia sẻ hình ảnh trực tuyến miễn phí và hơn thế nữa là kết nối cộng đồng
người dùng Internet, giúp người dùng chia sẻ những hình ảnh đẹp, khoảnh khắc đẹp
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 6
Xây dựng website chia sẻ hình ảnh trực tuyến
trong cuộc sống. Mỗi website lại có những điểm mạnh, điểm khác biệt so với những
website khác, nhưng nhìn chung, tất cả đều hướng tới lợi ích của người sử dụng,
đáp ứng nhu cầu của người dùng là lưu trữ, chia sẻ hình ảnh với bạn bè, người thân,
gia đình hay với tất cả mọi người. Chúng ta sẽ tìm hiểu về một số website chia sẻ
hình ảnh trực tuyến phổ biến nhất trên thế giới và tại Việt Nam.
Trên thế giới
• Flickr
Flickr là dịch vụ của Yahoo được phát triển vào tháng 2 năm 2004. Cho đến hiện
nay, Flickr được xem là một trong những trang web hàng đầu để chia sẻ hình ảnh,
hoàn toàn miễn phí đối với người dùng, là một lựa chọn hàng đầu của giới nhiếp
ảnh gia nhờ cung cấp dung lượng lưu trữ khổng lồ cùng với giao diện đơn giản, dễ

dùng. Với một hệ thống giao diện kéo-thả rất dễ sử dụng, Flickr cho phép người
dùng tag, chú thích trên hình ảnh và sắp xếp chúng vào các bộ sưu tập. Flickr cũng
hỗ trợ nhiều công cụ tuyệt vời như tính năng gán thẻ mở rộng và cho phép xem
cũng như tải ảnh ở nhiều độ phân giải khác nhau.
• Facebook
Mạng xã hội cũng chính là công cụ giúp lưu trữ và chia sẻ hình ảnh một cách
nhanh chóng nhất đến tất cả mọi người. Người dùng có thể upload ảnh qua web,
smartphone, tablet,… hay tạo album, thêm caption, thêm tag, địa điểm,… để chia sẻ
với những người bạn của mình. Tuy nhiên, chất lượng ảnh khi upload lên Facebook
sẽ được nén lại, ngoài ra không có cách nào để có thể chia sẻ hình ảnh ở độ phân
giải tối đa.
• 500 Pixels(500px.com)
Được hướng đến nhằm phục vụ nhu cầu lưu trữ kho hình ảnh cho những nhiếp
ảnh gia chuyên nghiệp, dịch vụ 500 Pixels cung cấp một thiết kế tập trung vào hình
ảnh, giao diện rõ ràng và thanh lịch để hiển thị những tác phẩm tuyệt vời. Người
dùng có thể tổ chức hình ảnh của mình theo Set(ảnh theo chủ đề cụ thể) hay theo
Story(ảnh theo sự kiện). Với tài khoản miễn phí, người dùng có thể up tối đa 20 ảnh
trong 1 tuần.
• Picasa
Picasa là một sản phẩm của Google. Picasa cung cấp cho người dùng 1GB dung
lượng lưu trữ và không giới hạn băng thông. Với Picasa, người dùng có thể upload
mọi định dạng ảnh, có thể chỉnh sửa ảnh một cách dễ dàng, kết nối với bạn bè và
chia sẻ ảnh đến các mạng xã hội. Ảnh upload lên Picasa không được vượt quá
20MB và giới hạn 50 megapixels.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 7
Xây dựng website chia sẻ hình ảnh trực tuyến
• Photobucket
Photobucket cho phép sử dụng tối đa 2GB lưu trữ đối với tài khoản free, đủ để
có thể lưu trữ hàng ngàn tấm ảnh. Photobucket cho phép sử dụng rất nhiều công cụ
để có thể chỉnh sửa ảnh và giao diện sử dụng một cách dễ dàng. Ngoài ra, người

dùng cũng có thể bán những bức ảnh của mình nếu có người yêu thích và muốn
mua lại.
• Imageshack
Imageshack là một website chia sẻ ảnh tuyệt vời vì người dùng không cần phải
đăng ký. Imageshack hoàn toàn miễn phí, rất trực quan và dễ sử dụng. Người dùng
có thể tải lên các loại file ảnh, video, thậm chí là flash. Với file ảnh và flash phải có
dung lượng nhỏ hơn 1.5MB và video phải nhỏ hơn 50MB. Ngoài ra, người dùng có
thể tạo slideshow cho hàng loạt ảnh trong kho ảnh. Thậm chí, ImageShack còn có
thêm chức năng tải torrent.
• Canon Irista
Canon Irista là công cụ chia sẻ ảnh của Canon. Đối với các tài khoản free, người
dùng có thể sử dụng tối đa 10GB. Các tính năng mạnh mẽ và rất dễ dàng sử dụng
trên Canon Irista chính là điểm mạnh thu hút các nhiếp ảnh gia.
• Fotki
Trong số các trang web lưu trữ hình ảnh nhỏ hơn, Fotki là một ứng cử viên nổi
bật. Fotki thú vị vì có tính năng tổ chức các cuộc thi ảnh và cho phép người sử dụng
bán những bản in thay vì chỉ được quyền mua như các website khác.
Tại Việt Nam
Hiện tại ở Việt Nam cũng có khá nhiều trang web lưu trữ và chia sẻ hình ảnh
trực tuyến với chất lượng tốt, đáp ứng kịp thời nhu cầu của người dùng trong nước.
Dưới đây là một số website chia sẻ hình ảnh trực tuyến phổ biến ở Việt Nam:
• Xomnhiepanh.com
Được ra mắt vào ngày 31 tháng 1 năm 2005, cho tới hiện tại, tổng số thành viên
của website này đã lên tới hơn 150 nghìn. Lọt top 100 social website, với nội dung
trực quan, dễ sử dụng, xomnhiepanh.com đang tạo dựng cho mình trở thành một
cộng đồng ảnh online lớn nhất Việt Nam.
• Photo.zing.vn
Zing Photo là một tiện ích của cổng thông tin điện tử Zing. Điểm mạnh của
website là tốc độ nhanh, giao diện trực quan, dễ hiểu, cách quản lý hình ảnh khoa
học, không giới hạn băng thông và số lượng. Tuy nhiên, các hình ảnh tại Zing Photo

đều được đóng dấu chìm, gây ra chút phiền toái cho người dùng.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 8
Xây dựng website chia sẻ hình ảnh trực tuyến
• Photo.tamtay.vn
Đây là dịch vụ lưu trữ ảnh của mạng xã hội Tamtay thu hút khá nhiều người sử
dụng, đặc biệt là thành viên lâu năm của thương hiệu này. Photo.tamtay.vn có mục
riêng cho từng trường đại học tại Việt Nam, đây là một điểm thú vị khác biệt so với
những trang web lưu trữ, chia sẻ hình ảnh khác. Bên cạnh đó, Photo.tamtay.vn còn
sở hữu bảng thống kê hình ảnh được yêu thích nhất trong từng tuần.
• Anhdep.anhso.net
Anhdep.anhso.net là cái tên gắn bó với nhiều thế hệ cư dân Internet Việt Nam,
Anhdep.anhso.net bỏ đi giới hạn lưu trữ ảnh của người sử dụng hay quy định dung
lượng tối đa của các file. Trang web cũng giúp người dùng thoải mái tùy biến kho
ảnh của mình như đặt tên, sửa thông tin, tạo album dễ dàng hay cung cấp công cụ
thống kê lượt truy cập của mình. Diễn đàn trực tuyến của trang web cũng là nơi hội
tụ nhiều tinh hoa làng nhiếp ảnh Việt Nam, chia sẻ kinh nghiệp quý giá của các cây
cổ thụ trong lĩnh vực nghệ thuật này.
1.6. Đặt vấn đề
Với sự phát triển mạnh mẽ của hàng loạt các website lưu trữ, chia sẻ hình ảnh
lớn nhỏ trong và ngoài nước như vậy thì người được hưởng lợi nhiều nhất không ai
khác chính là người dùng Internet, những người đam mê nhiếp ảnh, đam mê những
bức ảnh đẹp. Và để tạo ra được một sản phẩm mới, một website chia sẻ hình ảnh
mới với đầy đủ những chức năng, tiện ích, công nghệ mang tầm cỡ như Flickr,
Photobucket hay Imageshack, thỏa mãn được nhu cầu người dùng thì đây là một
thách thức rất lớn. Phải hiểu rằng, hình ảnh nặng hơn text(chữ) rất nhiều. Một
website chia sẻ hình ảnh trực tuyến lưu trữ đến hàng triệu, hàng tỷ hình ảnh thì sẽ
rất tốn băng thông. Nếu không có những hệ thống máy chủ mạnh mẽ cùng những
công nghệ mới tích hợp vào thì việc duy trì, lưu trữ hình ảnh hay tải ảnh lên thực sự
sẽ gặp rất nhiều khó khăn. Ngoài ra, một thách thức lớn đối với bất kỳ một website
chia sẻ hình ảnh nào là việc kiểm soát những hình ảnh mà người dùng tải lên. Để

hạn chế những hình ảnh với nội dung không lành mạnh từ người dùng tải lên, nhiều
website đã tập trung nghiên cứu, áp dụng những công nghệ mới, công nghệ nhận
dạng hình ảnh. Nhưng chúng ta phải hiểu rằng máy móc vẫn không thể bằng mắt
người được, tỷ lệ nhận dạng bị lỗi vẫn còn nên nhiều website chia sẻ hình ảnh đã có
cơ chế kiểm duyệt thủ công hình ảnh mà người dùng tải lên, nếu đủ điều kiện thì
mới được hiển thị trên website. Tuy nhiên công việc này vẫn tốn khá nhiều thời
gian, công sức, tiền của mà vẫn chưa thực sự hiệu quả khi số lượng ảnh được
upload mỗi ngày là quá lớn.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 9
Xây dựng website chia sẻ hình ảnh trực tuyến
Để phát triển một website giải quyết được mọi vấn đề ở trên là một trở ngại rất
lớn không chỉ với bản thân tôi mà còn đối với mỗi cá nhân nào khác. Tuy nhiên,
trong giới hạn là đồ án tốt nghiệp cùng với khả năng của bản thân, sự quyết tâm
cao, là một người yêu thích nhiếp ảnh, đam mê những bức ảnh đẹp, còn điều gì
tuyệt vời hơn khi được tự tay mình làm ra một website chia sẻ hình ảnh cho chính
bản thân mình và cho tất cả mọi người dùng mặc dù chưa thể đáp ứng được hết
những vấn đề khó khăn ở trên. Mỗi ngày được thấy những bức ảnh thật về cuộc đời
mà không cần đọc báo, từ những bức ảnh gia đình chia sẻ, gửi cho con trai đang du
học ở nước ngoài hay vợ gửi ảnh con cho người bố đang làm bộ đội đi công tác xa,
ảnh những đứa trẻ nô đùa trong ngõ vắng hay những bức ảnh kỷ yếu thật đáng nhớ
thời sinh viên,…, làm sao để website giống như những phóng viên ảnh phản ánh
chân thực cuộc sống hỉ nộ ái ố và các sự kiện của mọi người ở Việt Nam cũng như
trên toàn Thế giới. Tất cả những điều đó, hình ảnh đó là một động lực lớn, niềm tin
thôi thúc tôi phát triển một website mang nhiều ý nghĩa như vậy.
1.7. Thư viện GD xử lý ảnh trong PHP
1.7.1 Giới thiệu
GD là một thư viện đồ họa được phát triển bởi Thomas Boutell. Ngôn ngữ lập
trình tự nhiên của nó là ANSI C nhưng nó có giao diện cho nhiều ngôn ngữ lập trình
khác. Thư viện GD có thể tạo ảnh GIF, JPEG, PNG hay WBMP.
Hình 1.1: Logo thư viện GD

GD có thể tạo ra hình ảnh chứa vòng cung, văn bản(sử dụng phông chữ chương
trình được lựa chọn), hình ảnh khác. Phiên bản 2.0 hỗ trợ thêm cho hình ảnh
truecolor, các alpha channels, resampling(thay đổi kích thước của hình ảnh
truecolor), và nhiều tính năng khác.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 10
Xây dựng website chia sẻ hình ảnh trực tuyến
GD hỗ trợ nhiều ngôn ngữ lập trình bao gồm C, PHP, Perl, Python, OCaml, Tcl,
Lua, Pascal, Octave, REXX, Ruby và Go. Do đó GD scripts có thể được viết bằng
bất kỳ ngôn ngữ nào có khả năng chạy và sử dụng công cụ này.
PHP có thể được sử dụng để tạo ra và thao tác với các tập tin hình ảnh từ các
định dạng hình ảnh khác nhau, bao gồm GIF, PNG, JPEG, WBMP và XPM. Ngoài
ra, PHP có thể xuất hình ảnh trực tiếp tới trình duyệt. Để làm việc này, chúng ta sẽ
cần phải biên dịch PHP với thư viện GD. GD và PHP cũng có thể yêu cầu các thư
viện khác, tùy thuộc vào các định dạng hình ảnh mà người dùng muốn làm việc.
Chúng ta có thể sử dụng hàm xử lý ảnh trong PHP để lấy ra kích thước của ảnh
JPEG, GIF, PNG, SWF, TIFF và JPEG2000.
GD hỗ trợ rất nhiều các định dạng ảnh, dưới đây là danh sách các định dạng
được hỗ trợ bởi GD:
Hình 1.2: Định dạng ảnh được hỗ trợ bởi thư viện GD
1.7.2 Cài đặt, cấu hình
* Yêu cầu
Các định dạng ảnh mà người dùng có thể thao tác phụ thuộc vào phiên bản GD
đã cài đặt. Các phiên bản cũ hơn của GD như GD-1.6 hỗ trợ định dạng ảnh GIF và
không hỗ trợ định dạng ảnh PNG. Phiên bản sau GD-1.6 và trước GD-2.0.28 hỗ trợ
định dạng ảnh PNG, không hỗ trợ định dạng ảnh GIF. Hỗ trợ định dạng ảnh GIF đã
được tái kích hoạt trong GD-2.0.28.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 11
Xây dựng website chia sẻ hình ảnh trực tuyến
* Cài đặt
Trên Windows, GD2 DLL php_gd2.dll là một extension trong php.ini. Trong

php.ini, bỏ comment tại dòng extension=php_gd2.dll. GD1 DLL php_gd.dll đã bị
xóa trong PHP 4.3.2. Lưu ý rằng, một số hàm được yêu thích sử dụng như
imagecreatetruecolor() yêu cầu GD2.
Trên CentOS, để kích hoạt thư viện GD, chúng ta làm các bước sau:
Cài đặt GD:
yum install gd gd-devel php-gd
Khởi động lại Apache:
service httpd restart
Trên Linux, chúng ta cấu hình PHP with-gd[=DIR], DIR là thư mục cài đặt
GD. Để sử dụng phiên bản kèm theo khuyến cáo của thư viện GD, sử dụng tùy chọn
cấu hình with-gd. Thư viện GD yêu cầu libpng và libjpeg để biên dịch.
Để tăng cường khả năng xử lý các định dạng hình ảnh hơn, chúng ta cấu hình
with-XXXX.
Hình 1.3: Định dạng ảnh được hỗ trợ
Hình 1.4: Thư viện font được hỗ trợ
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 12
Xây dựng website chia sẻ hình ảnh trực tuyến
* Cấu hình
Hình 1.5: Cấu hình thư viện GD
1.7.3 Một số hàm xử lý ảnh trong thư viện GD
 getimagesize
getimagesize(string $filename [, array &$imageinfo ])
+ filename: đường dẫn tới tập tin hình ảnh muốn lấy thông tin về.
+ imageinfo: tham số tùy chọn, cho phép trích xuất một số thông tin mở rộng
từ các tập tin hình ảnh.
Hàm getimagesize() sẽ xác định kích thước của tập tin hình ảnh được chỉ định và trả
về chiều rộng, chiều cao và loại tập tin.
 imagecreatefromjpeg
imagecreatefromjpeg(string $filename)
+ filename: đường dẫn tới file ảnh JPEG

Hàm imagecreatefromjpeg() tạo mới một hình ảnh JPEG từ tập tin chỉ định hoặc
URL.
 imagecreatefrompng
imagecreatefrompng(string $filename)
+ filename: đường dẫn tới file ảnh PNG
Hàm imagecreatefrompng() tạo mới một hình ảnh PNG từ tập tin chỉ định hoặc
URL.
 imagecreatefromgif
imagecreatefromgif(string $filename)
+ filename: đường dẫn tới file ảnh GIF
Hàm imagecreatefromgif() tạo mới một hình ảnh GIF từ tập tin chỉ định hoặc URL.
 imagecreatetruecolor
imagecreatetruecolor(int $width , int $height)
+ width: chiều rộng hình ảnh
+ height: chiều cao hình ảnh
Hàm imagecreatetruecolor() trả về một hình ảnh màu sắc thực trên nền một hình
ảnh màu đen từ các kích thước quy định.
 imagecolorallocate
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 13
Xây dựng website chia sẻ hình ảnh trực tuyến
imagecolorallocate($image, int $red, int $green, int $blue)
+ image: hình ảnh được tạo ra từ hàm imagecreatetruecolor()
Hàm imagecolorallocate() trả về một hình ảnh có màu sắc theo bộ màu RGB
 imagecopyresampled
imagecopyresampled($dst_image ,$src_image , int $dst_x , int $dst_y , int
$src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h)
+ dst_image: đường dẫn tới file ảnh đích
+ src_image: đường dẫn tới file ảnh nguồn
+dst_x: x-coordinate của điểm đích
+dst_y: y-coordinate của điểm đích

+src_x: x-coordinate của điểm nguồn
+src_y: y-coordinate của điểm nguồn
+dst_w: độ rộng file ảnh đích
+dst_h: chiều cao file ảnh đích
+src_w: độ rộng file ảnh nguồn
+src_h: chiều cao file ảnh nguồn
Hàm imagecopyresampled() copy một phần hình chữ nhật của một hình ảnh tới
hình ảnh khác, đặc biệt, giảm kích thước của một hình ảnh mà vẫn giữ được tính
trong suốt của hình ảnh.
 imagecopymerge
imagecopymerge($dst_im, $src_im, int $dst_x, int $dst_y, int $src_x, int
$src_y, int $src_w, int $src_h, int $pct)
+ dst_im: đường dẫn tới file ảnh đích
+ src_im: đường dẫn tới file ảnh nguồn
+ pct: hai hình ảnh sẽ được ghép lại với nhau theo pct, có thể dao động từ 0
đến 100. Khi pct = 0, không có hành động nào được thực hiện, khi pct = 100,
hàm này thực hiện giống với hàm imagecopy() cho ra hình ảnh pallete, loại
trừ các thành phần alpha, trong khi thực hiện transparency alpha cho hình
ảnh màu sắc trung thực.
Hàm imagecopymerge() copy một phần của src_im lên dst_im bắt đầu tại x,y của
src_x, src_y với độ rộng của src_w và chiều cao của src_h. Các phần được xác định
sẽ copy lên x,y của dst_x và dst_y.
 imagefilledrectangle
imagefilledrectangle($image, int $x1, int $y , int $x2, int $y2, int $color)
+ image: hình ảnh được tạo ra từ hàm imagecreatetruecolor()
+ x1: x-coordinate của điểm 1
+ y1: y-coordinate của điểm 1
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 14
Xây dựng website chia sẻ hình ảnh trực tuyến
+ x2: x-coordinate của điểm 2

+ y2: y-coordinate của điểm 2
+ color: màu sắc được tạo ra từ imagecolorallocate()
 imagefilledarc
imagefilledarc($image, int $cx, int $cy, int $width, int $height, int $start, int
$end, int $color, int $style)
+ cx: x-coordinate của trung tâm
+ cy: y-coordinate của trung tâm
+ width: độ rộng arc
+ height: chiều cao arc
+ start: góc bắt đầu của arc
+ end: góc kết thúc của arc
+ color: màu sắc được tạo ra từ imagecolorallocate()
+ style:
 IMG_ARC_PIE
 IMG_ARC_CHORD
 IMG_ARC_NOFILL
 IMG_ARC_EDGED
Hàm imagefilledarc() vẽ hình vòng cung trung tâm trong hình ảnh được quy định.
 imagejpeg
imagejpeg($image [, string $filename [, int $quality ]])
+ image: hình ảnh được tạo ra từ hàm imagecreatetruecolor()
+ filename: đường dẫn tới thư mục để lưu file ảnh. Nếu không được thiết lập
hoặc NULL thì hình ảnh gốc sẽ được xuất ra trực tiếp
+ quality: chất lượng hình ảnh, từ 0(chất lượng thấp nhất) đến 100(chất
lượng cao nhất)
Hàm imagejpeg() xuất hình ảnh JPEG tới trình duyệt hoặc ra tập tin
 imagepng
imagepng($image [, string $filename [, int $quality [, int $filters ]]])
+ image: hình ảnh được tạo ra từ hàm imagecreatetruecolor()
+ filename: đường dẫn tới thư mục để lưu file ảnh. Nếu không được thiết lập

hoặc NULL thì hình ảnh gốc sẽ được xuất ra trực tiếp
+ quality: mức độ nén, từ 0(không nén) đến 9
Hàm imagepng() xuất hình ảnh PNG tới trình duyệt hoặc ra tập tin
+ filters: cho phép giảm kích thước tập tin PNG
 imagedestroy
imagedestroy($image)
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 15
Xây dựng website chia sẻ hình ảnh trực tuyến
Hàm imagedestroy() giải phóng bộ nhớ với hình ảnh đang thao tác.
1.7.4 Một vài ví dụ
Ví dụ 1: Resize hình ảnh
Ví dụ 2: Tạo khung đóng dấu trên ảnh
Kết quả khi chạy chương trình ở ví dụ 2:
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 16
Xây dựng website chia sẻ hình ảnh trực tuyến
Ví dụ 3: Tạo biều đồ hình tròn 3D
Kết quả khi chạy chương trình ở ví dụ 3:
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 17
Xây dựng website chia sẻ hình ảnh trực tuyến
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
2.1 Khảo sát và phân tích yêu cầu bài toán
2.1.1 Khảo sát đối tượng của website
Với bất kỳ một website chia sẻ hình ảnh nào trên thế giới hiện nay, đối tượng sử
dụng luôn là tất cả mọi người dùng Internet, những người có nhu cầu chia sẻ hình
ảnh của mình hay của người khác tới người thân, gia đình, bạn bè. Thành phần
người dùng đặc biệt hơn phải kể đến là những nhà nhiếp ảnh, những người đam mê
nhiếp ảnh bởi họ là những người trực tiếp tạo ra và chia sẻ những hình ảnh chất
lượng nhất.
2.1.2 Thiết kế ý tưởng website
Website được thiết kế responsive để có thể hiển thị hình ảnh, nội dung một cách

khoa học, trực quan nhất. Menu chủ đề ảnh, những hình ảnh mới nhất, nổi bật nhất
để mọi người lựa chọn xem ảnh, khung tìm kiếm để mọi người có thể tìm kiếm hình
ảnh một cách nhanh nhất, tiện lợi nhất. Đối với người dùng bình thường, họ sẽ có
thể xem được những hình ảnh công khai trên website, xem album ảnh, slideshow
album ảnh hay xem trang cá nhân của thành viên. Để sử dụng được nhiều chức
năng của hệ thống, người dùng cần đăng ký thành viên và đăng nhập vào hệ thống.
Đối với mỗi thành viên, họ sẽ có thể thực hiện chức năng upload hình ảnh mới lên
để giữ riêng tư hay chia sẻ công khai tới tất cả mọi người, tạo album ảnh hay quản
lý trang cá nhân,… Mỗi hình ảnh sẽ có riêng một trang chi tiết hình ảnh để hiển thị
hình ảnh cùng những thông tin chi tiết của hình ảnh đó(tác giả, tiêu đề, mô tả, thời
gian ảnh được tải lên, thông tin exif của ảnh, tags ảnh). Hình ảnh đó có thể được
yêu thích, chia sẻ hay bình luận bởi một hoặc nhiều thành viên. Cũng sẽ có trang
hiển thị chi tiết album để người dùng, thành viên có thể xem album một cách trực
quan, sống động nhất. Backend của website là phần quản trị nội dung do
administrator và manager quản lý. Ở đây, họ sẽ có thể thực hiện các chức năng quản
lý hình ảnh, quản lý người dùng, quản lý album ảnh,…
2.1.3 Biểu đồ phân rã chức năng BFD
- Hệ thống website chia sẻ hình ảnh trực tuyến bao gồm 3 nhóm người dùng:
+ Admin
+ Manager
+ Thành viên
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 18
Xây dựng website chia sẻ hình ảnh trực tuyến
- Mỗi nhóm người dùng sẽ có những quyền và chức năng nhất định.
Hình 2.1: Biểu đồ phân rã chức năng BFD
+ Biều đồ phân rã chức năng của người dùng Admin:
Admin là người có quyền cao nhất trong hệ thống, họ có thể thực hiện các chức
năng: đăng nhập, quản lý hình ảnh, quản lý người dùng, quản lý nhóm người dùng,
quản lý chủ đề ảnh, quản lý album ảnh, quản lý tags ảnh, quản lý bình luận ảnh,
quản lý bình luận album. Đối với quản lý người dùng, người dùng admin có quyền

và chức năng xem chi tiết thông tin cá nhân của họ và các manager, thành viên;
thêm người dùng manager và thành viên; chỉnh sửa thông tin cá nhân của họ và các
manager, thành viên; xóa người dùng manager, thành viên; tìm kiếm người dùng.
Hình 2.2: Biểu đồ phân rã chức năng BFD người dùng admin(Ảnh 1)
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 19
Xây dựng website chia sẻ hình ảnh trực tuyến
Hình 2.3: Biểu đồ phân rã chức năng BFD người dùng admin(Ảnh 2)
+ Biều đồ phân rã chức năng của người dùng Manager:
Tương tự như người dùng admin, người dùng manager cũng có các chức năng:
đăng nhập, quản lý hình ảnh, quản lý người dùng, quản lý nhóm người dùng, quản
lý chủ đề ảnh, quản lý album ảnh, quản lý tags ảnh, quản lý bình luận ảnh, quản lý
bình luận album. Đối với quản lý người dùng, người dùng manager cũng có thể xem
chi tiết thông tin cá nhân của họ và admin, thành viên; chỉ chỉnh sửa được thông tin
cá nhân của họ và các thành viên; chỉ xóa được người dùng là thành viên; tìm kiếm
người dùng.
Hình 2.4: Biểu đồ phân rã chức năng BFD người dùng manager(Ảnh 1)
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 20
Xây dựng website chia sẻ hình ảnh trực tuyến
Hình 2.5: Biểu đồ phân rã chức năng BFD người dùng manager(Ảnh 2)
+ Biều đồ phân rã chức năng của người dùng là thành viên:
Thành viên là nhóm người dùng chính đặc biệt quan trọng với hệ thống website,
tương tác trực tiếp với hệ thống website, góp phần đưa nội dung website trở lên
phong phú, sinh động. Người dùng là thành viên có các chức năng: đăng nhập, đăng
ký thành viên, quản lý hình ảnh, quản lý album ảnh, quản lý thông tin cá nhân.
Đối với quản lý hình ảnh, thành viên có thể upload hình ảnh mới lên. Họ sẽ cần
chọn đúng định dạng ảnh cho phép(jpg, jpeg hay png), thiết lập tiêu đề cho hình
ảnh, chọn một hoặc nhiều chủ đề cho hình ảnh, đặt tags cho hình ảnh, thêm mô tả
cho hình ảnh, lựa chọn hình ảnh là công khai(tất cả mọi người đều xem được hình
ảnh đó) hay riêng tư(chỉ họ mới có quyền xem hình ảnh đó). Hệ thống sẽ tự động
resize ảnh đó về một vài kích thước để dùng vào những trường hợp khác nhau.

Ngoài ra, đối với mỗi hình ảnh, thành viên có thể click yêu thích hình ảnh đó,
download hình ảnh đó về máy tính, bình luận hình ảnh đó hay chia sẻ hình ảnh đó
lên các mạng xã hội khác như Facebook, Google+, Twitter,… Với mỗi hình ảnh
upload lên, thành viên cũng có thể chỉnh sửa lại thông tin đã thiết lập cho hình ảnh
hay xóa hình ảnh.
Đối với quản lý album ảnh, đây là một chức năng hay mà hệ thống website chia
sẻ hình ảnh trực tuyến gắn cho mỗi thành viên. Khi tạo album ảnh, thành viên sẽ có
quyền lựa chọn ra những hình ảnh công khai trong kho ảnh của họ để đưa vào
album ảnh, thiết lập tiêu đề album hay mô tả về album đó. Khi chỉnh sửa album
ảnh, thành viên có thể xóa đi hình ảnh đã có trong album để thêm mới vào những
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 21
Xây dựng website chia sẻ hình ảnh trực tuyến
hình ảnh công khai khác trong kho ảnh của họ, đồng thời có thể thiết lập lại tiêu đề
và mô tả cho album ảnh. Với mỗi album ảnh được tạo ra, thành viên cũng có thể
xóa đi album đó.
Đối với quản lý thông tin cá nhân, thành viên có thể thay đổi mật khẩu, thay đổi
hồ sơ cá nhân hay thay đổi ảnh đại diện.
Hình 2.6: Biểu đồ phân rã chức năng BFD người dùng là thành viên
2.1.4 Biểu đồ luồng dữ liệu
2.1.4.1 Biểu đồ luồng dữ liệu mức ngữ cảnh
Biểu đồ luồng dữ liệu mức ngữ cảnh thể hiện được các thao tác yêu cầu của
người dùng được gửi tới hệ thống và sau khi tiếp nhận yêu cầu của người dùng, hệ
thống sẽ xử lý và trả lại cho người dùng.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 22
Xây dựng website chia sẻ hình ảnh trực tuyến
Hình 2.7: Biểu đồ luồng dữ liệu mức ngữ cảnh
2.1.4.2 Biểu đồ luồng dữ liệu mức 1
* Biểu đồ luồng dữ liệu quản lý hình ảnh
Trong biểu đồ luồng dữ liệu quản lý hình ảnh, người dùng có thể gửi các yêu cầu
đến các luồng dữ liệu xem thông tin chi tiết hình ảnh, sửa thông tin hình ảnh, xóa

hình ảnh và tìm kiếm hình ảnh. Các thông tin này đi vào các quá trình tương ứng và
với mỗi một quá trình thì sẽ lấy dữ liệu trong kho hình ảnh để thao tác.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 23
Xây dựng website chia sẻ hình ảnh trực tuyến
Hình 2.8: Biểu đồ luồng dữ liệu quản lý hình ảnh
* Biểu đồ luồng dữ liệu quản lý người dùng
Trong biểu đồ luồng dữ liệu quản lý người dùng, người dùng có thể gửi các yêu
cầu đến các luồng dữ liệu xem thông tin người dùng, thêm mới người dùng, sửa
thông tin người dùng, xóa người dùng và tìm kiếm thông tin người dùng. Các yêu
cầu này được kiểm tra quyền của người dùng, từ đó cho biết người dùng có thể thao
tác với những quyền gì và những chức năng gì trong quản lý người dùng. Mỗi một
quá trình sẽ lấy dữ liệu trong kho người dùng để thao tác.
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 24
Xây dựng website chia sẻ hình ảnh trực tuyến
Hình 2.9: Biểu đồ luồng dữ liệu quản lý người dùng
* Biểu đồ luồng dữ liệu quản lý nhóm người dùng
Trong biểu đồ luồng dữ liệu quản lý nhóm người dùng, người dùng có thể gửi
các yêu cầu đến các luồng dữ liệu thêm mới nhóm người dùng, sửa nhóm người
dùng, xóa nhóm người dùng. Các thông tin này đi vào các quá trình tương ứng và
với mỗi một quá trình thì sẽ lấy dữ liệu trong kho nhóm người dùng để thao tác.
Hình 2.10: Biểu đồ luồng dữ liệu quản lý nhóm người dùng
* Biểu đồ luồng dữ liệu quản lý chủ đề ảnh
Nguyễn Đình Sơn – Lớp Mạng máy tính và truyền thông K52 Page 25

×