Danh mục

Quá trình xử lý ảnh thumbnail với PHP

Số trang: 6      Loại file: pdf      Dung lượng: 156.73 KB      Lượt xem: 10      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Quản Trị Mạng - Về bản chất, có rất nhiều website lưu trữ những thư viện ảnh riêng biệt và kiểu thiết kế dùng chung, tất cả được “nhúng” trong trang đi kèm với những ảnh thumbnail, mục đích của việc làm này là khi người sử dụng nhấn vào mỗi ảnh thumbnail thì website sẽ hiển thị ảnh gốc với kích thước lớn hơn. Chúng ta có thể dễ dàng thực hiện quá trình này bằng cách sử dụng thẻ HTML anchor (...
Nội dung trích xuất từ tài liệu:
Quá trình xử lý ảnh thumbnail với PHP Quá trình xử lý ảnh thumbnail với PHPQuản Trị Mạng - Về bản chất, có rất nhiều website lưu trữ những thư viện ảnhriêng biệt và kiểu thiết kế dùng chung, tất cả được “nhúng” trong trang đi kèm vớinhững ảnh thumbnail, mục đích của việc làm này là khi người sử dụng nhấn vàomỗi ảnh thumbnail thì website sẽ hiển thị ảnh gốc với kích thước lớn hơn. Chúngta có thể dễ dàng thực hiện quá trình này bằng cách sử dụng thẻ HTML anchor (89 // ACQUIRE THE ARGUMENTS - MAY NEED SOME SANITYTESTS?10 $thumb_w = $_GET[w];11 $thumb_h = $_GET[h];12 $image_url = $_GET[img];1314 // CREATE THE THUMBNAIL IMAGE RESOURCE AND FILL INTRANSPARENT15 $thumb = imagecreatetruecolor($thumb_w, $thumb_h);16 imagesavealpha($thumb, TRUE);17 $empty = imagecolorallocatealpha($thumb,0x00,0x00,0x00,127);18 imagefill($thumb, 0, 0, $empty);1920 // GET ORIGINAL IMAGE DIMENSIONS21 $array = getimagesize($image_url);22 if ($array)23 {24 list($image_w, $image_h) = $array;25 }26 else27 {28 die(NO IMAGE $image_url);29 }3031 // ACQUIRE THE ORIGINAL IMAGE32 $image_ext = trim(strtoupper(end(explode(., $image_url))));33 switch(strtoupper($image_ext))34 {35 case JPG :36 case JPEG :37 $image = imagecreatefromjpeg($image_url);38 break;3940 case PNG :41 $image = imagecreatefrompng($image_url);42 break;4344 default : die(UNKNOWN IMAGE TYPE: $image_url);45 } 46 47 // GET THE LESSER OF THE RATIO OF THUMBNAIL H OR W DIMENSIONS 48 $ratio_w = ($thumb_w / $image_w); 49 $ratio_h = ($thumb_h / $image_h); 50 $ratio = ($ratio_w < $ratio_h) ? $ratio_w : $ratio_h; 51 52 // COMPUTE THUMBNAIL IMAGE DIMENSIONS 53 $thumb_w_resize = $image_w * $ratio; 54 $thumb_h_resize = $image_h * $ratio; 55 56 // COMPUTE THUMBNAIL IMAGE CENTERING OFFSETS 57 $thumb_w_offset = ($thumb_w - $thumb_w_resize) / 2.0; 58 $thumb_h_offset = ($thumb_h - $thumb_h_resize) / 2.0; 59 60 // COPY THE IMAGE TO THE CENTER OF THE THUMBNAIL 61 imagecopyresampled 62 ( $thumb 63 , $image 64 , $thumb_w_offset 65 , $thumb_h_offset 66 , 0 67 , 0 68 , $thumb_w_resize 69 , $thumb_h_resize 70 , $image_w 71 , $image_h 72 ) 73 ; 74 75 // SHOW THE NEW THUMB IMAGE 76 header(Content-type: image/png); 77 imagepng($thumb); 78 79 // RELEASE THE MEMORY USED BY THE RESOURCES 80 imagedestroy($thumb); 81 imagedestroy($image);Ví dụ về các trường hợp sử dụng:Khi nhìn vào đoạn mã ví dụ trên, cụ thể là dòng thứ 6, chúng ta hoàn toàn có thểđặt đoạn mã này vào thẻ image HTML. Về mặt kỹ thuật, đoạn mã trên sẽ thực hiện3 chức năng chính (từ dòng 9 – 12), hàm img chính là đường dẫn URL của ảnh,còn tham số w và h đại diện cho chiều rộng - width và cao – high. Khi đem ápdụng vào những chương trình cụ thể nào đó, nếu người sử dụng muốn lọc các giátrị này thì hãy đảm bảo đường dẫn URL đã được trỏ chính xác tới ảnh gốc, và thamsố w và h là những giá trị có thực.Quá trình tạo nguồn dữ liệu của ảnh thumbnail:Bước đầu tiên của chúng ta là phải tạo nguồn dữ liệu của ảnh thumbnail này (dòng15 – 18), cụ thể là dùng hàm imageCreateTrueColor() để tạo với các tham số vềkích thước tính theo đơn vị pixel được lấy từ hàm yêu cầu GET. Ở chế độ mặcđịnh, bức ảnh được phủ bởi những pixel màu đen, nhưng người sử dụng lại muốnlàm cho phần hình nền trở nên trong suốt, do vậy chúng ta sẽ tiếp tục sử dụng hàmimageSaveAlpha() để gửi “thông báo” tới thư viện GD và sử dụng toàn bộ kênhalpha, bên cạnh đó là hàm imageColorAllocateAlpha() khi gửi tới ảnh gốc và khitrả về, chúng ta sẽ nhận được tín hiệu của ảnh nền đã được làm trong suốt. Các bạncó thể tham khảo thêm tại đây: http://php.net/manual/en/function.imagecreatetruecolor.php http://php.net/manual/en/function.imagesavealpha.php http://php.net/manual/en/function.imagecolorallocatealpha.php http://php.net/manual/en/function.imagefill.phpKhi phần gốc của ảnh thumbnail đã hoàn tất, chúng ta sẽ tiếp tục với phần ảnh gốc.Trước tiên là lấy thông tin width và high của ảnh bằng hàm getImageSize(), nếucác bạn gặp lỗi tại bước này thì hãy xem lại phần đường dẫn trực tiếp của ảnh,hoặc file đang trỏ đến không phải là file ảnh. Trong bất kỳ trường hợp này, nếuchức năng của hàm này thất bại thì các phần mã tiếp theo cũng không thể tiếp tục,do vậy hãy kiểm tra thật kỹ tại bước này (dòng mã 20 – 30).Các bạn có thể tham khảo thêm thông tin chi tiết tại đây: http://php.net/manual/en/function.getimagesize.phpBước tiếp theo các yêu cầu về định dạng file được gửi đi từ người sử dụng. Về mặtkỹ thuật, PHP sẽ sử dụng các hàm khác nhau để tạo ảnh nguồn từ những định dạngkhác nhau được hỗ trợ, cụ thể những file input sẽ được đáp ứng là JPG và PNG,bên cạnh đó là GIF và BMP (xem dòng mã 32). Sau đó áp dụng cấu trúc điều khiểnswit ...

Tài liệu được xem nhiều: