Danh mục

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

Số trang: 11      Loại file: pdf      Dung lượng: 118.66 KB      Lượt xem: 13      Lượt tải: 0    
tailieu_vip

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

Thông tin tài liệu:

Quá trình xử lý ảnh thumbnail với PHP.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.
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ý ảnhthumbnail với PHPVề 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ếtkế 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ệnquá trình này bằng cách sử dụng thẻ HTML anchor (thúc việc này, hệ thống đã sẵn sàng để lưu và hiển thị ảnh, sau đó là phần còn lại củaPHP có nhiệm vụ trả lại dữ liệu nguồn thành chuỗi mã nhị phân.Đây là 1 đoạn mã ví dụ trong trường hợp này: 1 AND FILL IN TRANSPARENT15 $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 }4647 // GET THE LESSER OF THE RATIO OF THUMBNAILH OR W DIMENSIONS48 $ratio_w = ($thumb_w / $image_w);49 $ratio_h = ($thumb_h / $image_h);50 $ratio = ($ratio_w < $ratio_h) ? $ratio_w : $ratio_h;5152 // COMPUTE THUMBNAIL IMAGE DIMENSIONS53 $thumb_w_resize = $image_w * $ratio;54 $thumb_h_resize = $image_h * $ratio;5556 // COMPUTE THUMBNAIL IMAGE CENTERINGOFFSETS57 $thumb_w_offset = ($thumb_w - $thumb_w_resize) / 2.0;58 $thumb_h_offset = ($thumb_h - $thumb_h_resize) / 2.0;5960 // COPY THE IMAGE TO THE CENTER OF THETHUMBNAIL61 imagecopyresampled62 ( $thumb63 , $image64 , $thumb_w_offset65 , $thumb_h_offset66 , 067 , 068 , $thumb_w_resize69 , $thumb_h_resize70 , $image_w71 , $image_h72 )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ạnmã này vào thẻ image HTML. Về mặt kỹ thuật, đoạn mã trên sẽ thực hiện 3 chức năngchí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 áp dụng vào những chương trìnhcụ 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ẫnURL đã được trỏ chính xác tới ảnh gốc, và tham số 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òng 15 –18), cụ thể là dùng hàm imageCreateTrueColor() để tạo với các tham số về kích thướctính theo đơn vị pixel được lấy từ hàm yêu cầu GET. Ở chế độ mặc định, bức ảnh đượcphủ bởi những pixel màu đen, nhưng người sử dụng lại muốn là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àm imageSaveAlpha() để gửi“thông báo” tới thư viện GD và sử dụng toàn bộ kênh alpha, bên cạnh đó là hàmimageColorAllocateAlpha() khi gửi tới ảnh gốc và khi trả về, chúng ta sẽ nhận được tínhiệu của ảnh nền đã được làm trong suốt. Các bạn có 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ướctiên là lấy thông tin width và high của ảnh bằng hàm getImageSize(), nếu các bạn gặplỗ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ỏ đếnkhông phải là file ảnh. Trong bất kỳ trường hợp này, nếu chức năng của hàm này thất bạithì 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ướcnà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.ne ...

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

Tài liệu cùng danh mục:

Tài liệu mới: