Xử lý hình ảnh

Thư viện hỗ trợ xử lý hình ảnh đơn giản và nhanh chóng từ lấy ra thông tin hình ảnh, resize, tạo thumbnail, watermark cho đến các điều chỉnh nâng cao khác.

Khai báo thư viện

$soc->use_image();

Hoặc:

$soc->use_img();

Ví dụ hướng dẫn sử dụng nhanh

// Cho phép xử lý ảnh liên tục qua nhiều thao tác như đoạn code sau:  $img = $soc->img  	->fromFile('image.jpg')                     // Mở file ảnh  	->autoOrient()                              // Tự động xoay ảnh dựa vào dữ liệu exif  	->resize(320, 200)                          // Thay đổi kích thước ảnh về 320x200px  	->flip('x')                                 // Lật theo trục X (chiều ngang)  	->colorize('DarkBlue')                      // Nhộm màu xanh đậm  	->border('black', 10)                       // Thêm đường viền màu đen xunh quanh với độ dày 10px  	->overlay('watermark.png', 'bottom right')  // Thêm watermark (gắn logo lên ảnh) ở góc dưới bên phải  	->toFile('new-image.jpg', 'image/jpeg')     // Chuyển ảnh sang định image/jpeg và lưu vào file tên là new-image.jpg  	->toScreen();				    // Hiển thị ảnh lên màn hình

Danh sách hàm

// Mở ảnh từ chuỗi URI base64  fromDataUri($uri)    // Mở ảnh từ file  fromFile($file)    // Tạo ảnh mới  fromNew($width, $height, $color)    // Mở ảnh từ nội dung file ảnh (có thể đọc được nội dung từ hàm file_get_contents)  fromString($string)    // Lưu ảnh thành URI (chất lượng ảnh quality từ 0 đến 100)  toDataUri($mime_type='', $quality=100)    // Tải ảnh  toDownload($filename, $mime_type='', $quality=100)    // Lưu ảnh vào file  toFile($file, $mime_type='', $quality=100)    // Hiển thị ảnh lên màn hình  toScreen($mime_type='', $quality=100)    // Lưu ảnh thành chuỗi nội dung (có thể ghi file ảnh bằng hàm file_put_contents)  toString($mime_type='', $quality=100)    // Hỗ trợ upload ảnh tạm từ $_FILES  tempUpload($var_name, $temp_dir='')    // Hỗ trợ upload nhiều ảnh tạm từ $_FILES  tempsUpload($var_name, $temp_dir='')    // Lấy tỷ lệ của ảnh  getAspectRatio()    // Lấy dữ liệu Exif  getExif()    // Lấy chiều cao  getHeight()    // Lấy Mime Type  getMimeType()    // Lấy đuôi file hiện tại hoặc file truyền vào  getExtension($file='')    // Lấy chiều của ảnh ('landscape', 'portrait', hoặc 'square')  getOrientation()    // Lấy độ phân giải của ảnh trong DPI (trả về mảng số nguyên. VD: [0 => 96, 1 => 96])  getResolution()    // Lấy chiều rộng  getWidth()    // Tự động xoay ảnh dựa vào dữ liệu exif  autoOrient()    // Thay đổi kích thước ảnh nằm vừa vặn vào trong chiều rộng và chiều cao tối đa  bestFit($max_width, $max_height)    // Cắt ảnh dựa vào các tọa độ: trên trái x, trên trái y, dướ phải x, dưới phải y  crop($x1, $y1, $x2, $y2)    // Lật ảnh ($direction = 'x' / 'y' / 'both')  flip($direction)    // Giảm số màu sử dụng  maxColors($max_color, $dither=true)    // Thêm ảnh chồng lên ảnh hiện tại  overlay($overlay_file, $anchor='center', $opacity=1, $x_offset=0, $y_offset=0)    // Điều chỉnh kích thước ảnh  resize($width=null, $height=null)    // Thay đổi độ phân giải DPI của ảnh  resolution($res_x, $res_y)    // Xoay ảnh  rotate($angle, $background_color='transparent')    // Viết chữ lên ảnh  text($text, $options, &$boundary)    // Tạo thumbnail  thumbnail($width, $height, $anchor='center')    // Vẽ hình tròn  arc($x_center, $y_center, $width, $height, $start, $end, $color, $thickness=1)    // Vẽ đường viền  border($color, $thickness=1)    // Vẽ dấu chấm 1px  dot($x, $y, $color)    // Vẽ hình ellipse  ellipse($x, $y, $width, $height, $color, $thickness=1)    // Tô màu  fill($color)    // Vẽ đường thẳng  line($x1, $y1, $x2, $y2, $color, $thickness=1)    // Vẽ đa giác   polygon($vertices, $color, $thickness=1)    // Vẽ hình chữ nhật  rectangle($x1, $y1, $x2, $y2, $color, $thickness=1)    // Vẽ hình chữ nhật bo góc  roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $thickness=1)    // Làm mờ  blur($blur_algorithm='gaussian', $passes=1)    // Tăng sáng  brighten($percentage)    // Đổi tông màu  colorize($color)    // Độ tương phản  contrast($percentage)    // Tăng tối  darken($percentage)    // Chuyển màu đen trắng  desaturate()    // Đổi màu duo  duotone($light_color, $dark_color)    // Hiệu ứng edge  edgeDetect()    // Hiệu ứng emboss  emboss()    // Đảo màu  invert()    // Độ trong suốt  opacity()    // Hiệu ứng pixel  pixelate($size_px)    // Hiệu ứng sepia  sepia()    // Hiệu ứng sharpen  sharpen($sharpen_amount=50)    // Hiệu ứng sketch  sketch()    // Chỉnh màu  adjustColor($color, $red, $green, $blue, $alpha)    // Chỉnh màu tối  darkenColor($color, $color_amount)    // Tách màu  extractColors($count=10, $background_color=null)    // Lấy màu tại 1 vị trí  getColorAt($x, $y)    // Chỉnh màu sáng  lightenColor($color, $color_amount)    // Hiệu ứng bình thường hóa  normalizeColor($color)

Chú thích biến đầu vào

BiếnÝ nghĩaVí dụ
$uriChuỗi URI base64
$file Đường dẫn file ảnh
$width Chiều rộng tính theo px
$height Chiều cao tính theo px
$color Chuỗi mã màu hoặc mảng thông số màu array('red'=>255, 'green'=>100, 'blue'=>0, 'alpha'=>1)
$string Chuỗi 
$mime_type Chuỗi 'image/png' 
$var_name Tên key trong $_FILES

$temp_dir 

Đường dẫn thư mục chứa ảnh lưu tạm


$quality Chất lượng từ 0 đến 100 
$filename Tên file my-image.jpg 
$max_width Chiều rộng tối đa tính theo px 
$max_height Chiều cao tối đa tính theo px
$x_center 

Tọa độ trục X tâm của hình tròn


$y_center Tạo độ trục Y tâm của hình tròn
$x1 

Tọa độ trên cùng bên trái theo trục x 


$y1 Tọa độ trên cùng bên trái theo trục y
$x2 Tọa độ dưới cùng bên phải theo trục x
$y2Tọa độ dưới cùng bên phải theo trục y 
$direction Hướng 'x', hướng 'y' hoặc 'both' là cả 2 hướng 
$max_color Số màu tối đa
$dither Hiệu ứng phối màu 
$overlay_file 

Đường dẫn file ảnh ghép đè chồng


$anchor Vị trí gồm: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right'
$opacity Độ trong suốt là số thực có giá trị từ 0 đến 1
$x_offsetKhoảng cách theo chiều x 
$y_offset 

Khoảng cách theo chiều y


$res_x Độ phân giải theo chiều x
$res_y Độ phân giải theo chiều y
$angle Góc có giá trị từ -360 đến 360
$background_color Chuỗi hoặc mảng, tương tự $color
$text Văn bản
$options 

Mảng các cài đặt gồm:
- fontFile: Đường dẫn file font chữ.
- size: Kích thước chữ.
- color: Chuỗi mã màu hoặc mảng màu.
- anchor: Vị trí.
- xOffset: Khoảng cách theo chiều x.
- yOffset: Khoảng cách theo chiều y.
- shadow: Mảng cài đặt đổ bóng gồm 3 thành phần là x, y và color.

$boundary Mảng trả về vị trí của text trong ảnh sau khi đã ghi lên ảnh
$start Điểm bắt đầu của đường tròn tính theo độ
$end Điểm kết thúc của đường tròn tính theo độ
$thickness Độ dày tính bằng px hoặc chuỗi 'filled'
$vertices Mảng các đỉnh của đa giácarray(
array('x'=>10, 'y'=>20),
array('x'=>15, 'y'=>80),
array('x'=>80, 'y'=>300)
)
$radius Độ bo góc của viền
$blur_algorithm Thuật toán làm mờ, 'gaussian' hoặc 'selective'
$passes Số lần chạy thuật toán 
$percentage Phần trăm tăng giảm từ 0 đến 100
$light_color Chuỗi hoặc mảng màu sáng, tương tự $color
$dark_color Chuỗi hoặc mảng màu tối, tương tự $color
$size_px Độ rộng của từng khối pixel
$sharpen_amount Hiệu ứng sharpen từ 1 đến 100
$color_amountĐộ đậm nhạt của màu từ 0 đến 255 
09-08-2021

Bài viết liên quan