imageconvolution() là hàm nội bộ trong PHP dùng để áp dụng ma trận tích chập (convolution matrix) 3×3, sử dụng hệ số và độ bù trong ảnh.
Cú pháp
bool imageconvolution(GdImage $image, array $matrix, float $div, float $offset)
Tham số
imageconvolution() nhận bốn tham số: $image, $matrix, $div, và $offset.
$image – Tạo kích thước ảnh bằng hàm tạo ảnh như imagecreatetruecolor().
$matrix – Mảng ma trận 3×3 các giá trị float.
$div – Dùng để chuẩn hóa.
$offset – Đặt độ bù màu.
Giá trị trả về
imageconvolution() trả về true khi thành công và false khi thất bại.
Ví dụ 1
<?php
// Tải ảnh PNG bằng imagecreatefrompng
$image = imagecreatefrompng('C:\xampp\htdocs\Images\img59.png');
// Áp dụng ma trận 3x3
$matrix = array(
array(2, 0, 0),
array(0, -1, 0),
array(0, 0, -1)
);
// Sửa đổi phần tử ảnh
imageconvolution($image, $matrix, 1, 127);
// Hiển thị ảnh ra trình duyệt
header('Content-Type: image/png');
imagepng($image, null, 9);
?>
Kết quả
Ảnh PNG đầu vào trước khi dùng imageconvolution()

Ảnh PNG đầu ra sau khi dùng imageconvolution()

Ví dụ 2 – Làm mờ Gaussian
<?php
$image = imagecreatetruecolor(700, 300);
// Viết text và áp dụng Gaussian blur
imagestring($image, 50, 25, 8, 'Gaussian Blur Text image', 0x00ff00);
$gaussian = array(
array(1.0, 2.0, 1.0),
array(2.0, 4.0, 2.0),
array(1.0, 2.0, 1.0)
);
imageconvolution($image, $gaussian, 16, 0);
// Viết lại text để so sánh
imagestring($image, 15, 20, 18, 'Gaussian Blur Text image', 0x00ff00);
header('Content-Type: image/png');
imagepng($image, null, 9);
?>
Kết quả
