Tạo thumbnail và xử lý ảnh

Tạo thumbnail và xử lý ảnh

Khai báo sử dụng thư viện

$soc->use_image();

Tạo thumbnail

$soc->image->open('../upload/abc.jpg'); // M file nh abc.jpg (VD: 400x300px)

$soc->image->thumbnail(50, 50); // Tạo thumbnail có kích thước 50x50px

$soc->image->saveAs('../upload/abc-thumbnail.jpg', 100); // Lưu nh thumbnail với cht lượng 100 (từ 0 đến 100)

Ở trường hợp này thumbnail được tạo ra sẽ có kích thước chính xác là 50x50px, nếu tỷ lệ thumbnail khác với tỷ lệ của ảnh gốc thì thumbnail sẽ bị crop một ít xung quanh.

Trong một số trường hợp bạn không muốn thumbnail bị crop thì có thể sử dụng các hàm thumbnail sau:

  • thumbnailFit($width, $height): thumbnail nằm trọn trong diện tích 50x50px (theo VD: 50x30px).
  • thumbnailOverflow($width, $height): thumbnail được phép tràn ra ngoài 50x50px (theo VD: 67x50px).

Nâng cao

// Tạo ảnh trắng với kích thước và màu sắc do bạn tự quyết định

$soc->image->blank($width, $height, $color);


// Sau khi xử lý, lưu cập nhật vào ảnh gốc đã mở với chất lượng mặc định hoặc chất lượng khác

$soc->image->save();

$soc->image->save(80);


// Không lưu vào file mà hiển thị ảnh ra trình duyệt
$soc->image->show();


// Lật ảnh theo trục X
$soc->image->flipX();

// Lật ảnh theo trục Y
$soc->image->flipY();


// Xoay ảnh ($degress số dương là theo chiều kim đồng hồ)
$soc->image->rotate($degrees);


// Thay đổi kích thước ảnh theo width (height tự tính theo tỷ lệ)
$soc->image->resizeByWidth($new_width);


// Thay đổi kích thước ảnh theo height (width tự tính theo tỷ lệ)
$soc->image->resizeByHeight($new_height);


// Thay đổi kích thước ảnh (ảnh sẽ bị méo nếu khác tỷ lệ)
$soc->image->resize($new_width, $new_height);


// Cắt ảnh theo hình chữ nhật được tạo ra từ đường chéo của 2 điểm ($x1, $y1) và ($x2, $y2)
$soc->image->crop($x1, $y1, $x2, $y2);


// Tô màu cho ảnh
$soc->image->fill($color);


// Chuyển ảnh thành đen trắng
$soc->image->desaturate();


// Chuyển màu đối lập
$soc->image->invert();


// Tăng giảm sáng tối (từ -255 đến 255)
$soc->image->brightness($value);


// Tăng giảm độ tương phản (từ -100 đến 100)
$soc->image->contrast($value);


// Chỉnh màu sắc phủ và opacity (từ 0.0 đến 1.0)
$soc->image->colorize($color, $opacity);


// Hiệu ứng edges
$soc->image->edges();


// Hiệu ứng emboss
$soc->image->emboss();


// Bỏ filter mean
$soc->image->meanRemove();


// Làm mở
$soc->image->blur();


// Làm mở theo gaussian
$soc->image->blurGaussian($value);


// Hiệu ứng hình vẽ (hình phát thảo)
$soc->image->sketch();


// Smooth (từ -10 đến 10)
$soc->image->smooth($value);


// Hiệu ứng pixelate (truyền vào số px)
$soc->image->smooth($value);


// Hiệu ứng sepia
$soc->image->sepia();


// Opacity (từ 0.0 đến 1.0)
$soc->image->opacity($value);


// Watermark

// $watermark_path: đường dẫn file ảnh

// $position: center, top, right, bottom, left, top left, top right, bottom left, bottom right

// $opacity: từ 0.0 đến 1.0
$soc->image->watermark($watermark_path, $position, $opacity, $margin_horizontal, $margin_vertical);


// Viết chữ lên ảnh

$soc->image->addText($text, $font_path, $font_size, $color, $position, $margin_horizontal, $margin_vertical);


// Lấy chiều rộng
$soc->image->getWidth();


// Lấy chiều cao
$soc->image->getHeight();

// Lấy tất cả thông tin của ảnh, kết quả trả về là mảng

$soc->image->getInfo();


// Lấy khổ ảnh: portrait, landscape, square

$soc->image->getOrientation();


// Lấy đuôi ảnh

$soc->image->getExtension(); // Lấy đuôi ảnh đang mở

$soc->image->getExtension($path); // Ly đuôi ảnh từ $path