Công cụ thành viên

Công cụ trang web


programming4:class:image

Đây là một phiên bản cũ của tài liệu!


Hướng dẫn chi tiết cách sử dụng class Image để xử lý ảnh

Class image là lớp có chứa các chức năng xử lý ảnh trên hệ thống như: Chỉnh kích thước, cắt ảnh, thêm logo, tối ưu dung lượng ảnh…

Chuẩn bị

  1. Cài đặt NukeViet 4.4.02 (link tải NukeViet 4.4.02) hoặc tương đương.
  2. Cài đặt module mẫu samples (nv4_module_samples.zip) để lập trình
  3. Dùng class upload (Xem hướng dẫn), chức năng quản lý file hoặc copy trực tiếp ảnh này nukeviet.png vào thư mục uploads

Hướng dẫn lập trình

Trong file modules/samples/admin/main.php bên dưới đoạn

//------------------------------
// Viết code xử lý chung vào đây
//------------------------------

Ta tiến hành lập trình xử lý ảnh:

Khởi tạo class Image bằng lệnh

$image = new NukeViet\Files\Image(NV_UPLOADS_REAL_DIR . '/nukeviet.png', NV_MAX_WIDTH, NV_MAX_HEIGHT);

Trong đó:

  • Tham số thứ nhất là đường dẫn tuyệt đối đến ảnh, trong ví dụ này ảnh là nukeviet.png trong thư mục uploads
  • Tham số thứ 2, 3 là chiều rộng tối đa và chiều cao tối đa được phép xử lý. Có thể không giới hạn bằng cách bỏ hai tham số này

Sau đó sử dụng theo quy luật sau

$image->[Phương thức 1/Chức năng 1]
$image->[Phương thức 2/Chức năng 2 ...]
$image->save(NV_UPLOADS_REAL_DIR, $newname, $quality);
$image->close();
 
$info = $image->create_Image_info;

Mô tả:

  • Đầu tiên gọi ra chức năng xử lý, có thể gọi nhiều lần, các chức năng này được mô tả bên dưới
  • Sau khi xử lý các chức năng gọi phương thức lưu $image→save để lưu ảnh, tham số truyền vào gồm
    • Thư mục lưu ảnh
    • Tên ảnh mới, nếu không chỉ ra hệ thống tự động lưu ảnh mới với dạng [tên-ảnh-cũ_rộng_cao].[loại-file]
    • Chất lượng ảnh mới, nếu không chỉ ra hệ thống lưu với chất lượng 100%. Giá trị truyền vào từ 1 ⇒ 100
  • Cuối cùng kiểm tra $image→create_Image_info để lấy kết quả lưu ảnh mới

Các chức năng xử lý ảnh

Chỉnh kích thước theo %

$image->resizePercent(100);

Tham số tuyền vào là số nguyên, nhỏ nhất = 1.

Cắt ảnh từ giữa

$image->cropFromCenter(100, 100);

Tham số tuyền vào là kích thước rộng, cao của ảnh mới.

Cắt ảnh từ bên trái

$image->cropFromLeft(50, 50, 200, 200);

Tham số thứ 1, 2 cho biết khoảng cách từ bên trái và bên trên sẽ bắt đầu cắt ảnh. Tham số thứ 3, 4 cho biết kích thước rộng, cao cần cắt lấy

programming4/class/image.1604286409.txt.gz · Sửa đổi lần cuối: 2020/11/02 10:06 bởi hoaquynhtim99