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…
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 đó:
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ả:
$image→save
để lưu ảnh, tham số truyền vào gồm$image→create_Image_info
để lấy kết quả lưu ảnh mới$image->resizePercent(100);
Tham số tuyền vào là số nguyên, nhỏ nhất = 1.
$image->cropFromCenter(100, 100);
Tham số tuyền vào là kích thước rộng, cao của ảnh mớ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
$image->cropFromTop(200, 200);
Hai tham số truyền vào cho biết kích thước ảnh cần cắt. Hướng cắt từ trái, bên trên. Thương thức cắt ảnh này giống với cropFromLeft
với tham số 1,2 bằng 0
$image->resizeXY(200, 200);
Hai tham số truyền vào là kích thước tối đa cần resize theo phương rộng, cao. Ảnh được resize có tỉ lệ đúng với tỉ lệ của ảnh gốc.
$image->reflection();
Chức năng này tạo ảnh mới có chiều cao gấp rưỡi ảnh gốc, phần cao của ảnh thêm vào có dạng bóng đổ xuống mờ dần.
$image->rotate(-45);
Tham số tuyền vào giá trị dương hoặc âm từ 0 đến 360 độ. Nếu dương ảnh xoay cùng chiều kim đồng hồ và ngược lại giá trị âm ảnh xuay ngược chiều kim đồng hồ.
$config = [ 'w' => 113, 'h' => 32, 'x' => 30, 'y' => 30 ]; $image->addlogo(NV_ROOTDIR . '/' . NV_ASSETS_DIR . '/images/logo_small.png', 'right', 'bottom', $config);
Trong đó biến $config
có nghĩa như sau:
$config
có thể chỉ ra hoặc không chỉ ra.
Các tham số phương addlogo
có ý nghĩa như sau:
$config['w']
và $config['h']
thì giá trị này sẽ chỉ định logo nằm bên trái cách lề 10px nằm giữa hoặc nằm bên phải cách lề 10px$config['w']
và $config['h']
thì giá trị này sẽ chỉ định logo nằm bên trên cách lề 10px nằm giữa hoặc nằm bên dưới cách lề 10px$config
bên trên.$image->addstring('NukeViet CMS', 'right', 'bottom', NV_ROOTDIR . '/includes/fonts/Pixelation.ttf', 36);
Trong đó:
addlogo
bên trên.Tải module chứa code mẫu của bài hướng dẫn tại đây nv4_module_samples_image.zip