Lập trình web với PHP - p29

Chia sẻ: Yukogaru | Ngày: | Loại File: PDF | Số trang:8

0
135
lượt xem
89
download

Lập trình web với PHP - p29

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 7 : THAO TÁC VÀ TẠO HÌNH ẢNH VỚI PHP Chuyển đổi loại file hình ảnh Có một vài chú ý về cách chèn hình ảnh của bạn khi dưa nó đến với người dùng. Hãy nhìn vào dòng sau: ” align=”left”..............

Chủ đề:
Lưu

Nội dung Text: Lập trình web với PHP - p29

  1. Chương 7 : THAO TÁC VÀ TẠO HÌNH ẢNH VỚI PHP Chương này bao gồm những phần sau: - Có thể vài đặt PHP bao gồm cả thư viện GD. - Cho phép người dùng đưa hình ảnh của họ lên. - Nhận lại thông tin về hình ảnh như loại, kích thước. - Tạo một hình ảnh mới. - Sao chép một ảnh hoặc một phần của ảnh. - Tạo thumbnails(phiên bản thu nhỏ của ảnh). - Tạo một phiên bản ảnh trắng đen. - Thêm hoa văn và tên cho hình. Chuyển đổi loại file hình ảnh Có một vài chú ý về cách chèn hình ảnh của bạn khi dưa nó đến với người dùng. Hãy nhìn vào dòng sau:
  2. Chúng ta sẽ chọn cách thứ 3. Ở đây, chúng ta sẽ thay đổi file check_image.php một cách hợp lý. Bằng cách tạo ra một bản sao loại .jpg(trong 3 loại GIF, JPG, PNG) chứ không thay đổi bản. Để chuyển đổi loại file bạn làm 4 bước sau: 1.Tạo một hình ảnh GD-thân thiện mới từ hình ảnh gốc để làm một hình ảnh nguồn tạm. 2. Tạo một hình ảnh GD-thân thiện rỗng để làm một hình ảnh đích tạm. 3. Sao chép hình ảnh nguồn mới đến hình ảnh đích mới. 4. Lưu hoặc xuất ra hình ảnh đích đã được thay đổi. 5. (Tùy ý, nhưng khuyên dùng) xóa hình ảnh nguồn tạm và hình ảnh đích tạm. PHP có những hàm cho các file loại đặc biệt cho bước 1 và 4(ví dụ imagecreatefromgif, imagecreatefromjpg), vì vậy, điều quan trọng là bạn biết loại file nào mà bạn đang làm việc với nó. Ví dụ: sắp xếp hợp lý tiến trình Để xử lý file của bạn cần thay đổi check_image.php như sau:
  3. $ImageName = $ImageDir . $image_tempname; if (move_uploaded_file($_FILES[„image_filename‟][„tmp_name‟], $ImageName)) { //Lấy thông tin về hình ảnh đưa lên list($width, $height, $type, $attr) = getimagesize($ImageName); //**Xóa từ dòng này switch ($type) { case 1: $ext = “.gif”; break; case 2: $ext = “.jpg”; break; case 3: $ext = “.png”; break; default: echo “Sorry, but the file you uploaded was not a GIF, JPG, or “ . “PNG file.”; echo “Please hit your browser‟s „back‟ button and try again.”; } //**kết thúc xóa //**thêm những dòng mới này if ($type > 3) { echo “Sorry, but the file you uploaded was not a GIF, JPG, or “ .
  4. “PNG file.”; echo “Please hit your browser‟s „back‟ button and try again.”; } else { //Hìng ảnh có thể chấp nhận //**kết thúc việc chèn //chèn thông tin về bảng hình ảnh $insert = “INSERT INTO images (image_caption, image_username, image_date) VALUES („$image_caption‟, „$image_username‟, „$today‟)”; $insertresults = mysql_query($insert) or die(mysql_error()); $lastpicid = mysql_insert_id(); //thay đổi dòng này: $newfilename = $ImageDir . $lastpicid . “.jpg”; //**chèn dòng này if ($type = = 2) { rename($ImageName, $newfilename); } else { if ($type = = 1) { $image_old = imagecreatefromgif($ImageName); } elseif ($type = = 3) { $image_old = imagecreatefrompng($ImageName); }
  5. //chuyển đổi hình ảnh thành jpg $image_jpg = imagecreatetruecolor($width, $height); imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height); imagejpeg($image_jpg, $newfilename); imagedestroy($image_old); imagedestroy($image_jpg); } $url = “location: showimage.php?id=” . $lastpicid; header($url); //**kết thúc dòng chèn } ?>
  6. END OF DELETED LINES--> Mở trình soạn thảo và nhập đoạn mã lưu với tên Showimage.php Here is your pic! So how does it feel to be famous? Here is the picture you just uploaded to our servers: >
  7. It is pixels wide a nd pixels high. It was uploaded on by . 3.Nếu bạn lưu file, đưa lên trình duyệt, và đưa hình ảnh của bạn, bạn sẽ chú ý rằng về cơ bản giống như màn hình trước. Cách thức làm việc Hãy nhìn vào phần chính mà bạn thêm trong chương trình của bạn. Đầu tiên chúng ta sẽ xử lý với file JPG bởi vì chúng sẳn sàn trong định dạng mà bạn muốn. if ($type == 2) { rename($ImageName, $newfilename); Ở đây, nếu file là file JPG, bạn sẽ đổi tên nó thành ID hình ảnh của bạn cộng với phần mở rộng ”.jpg”. Mặc khác, nếu file là GIF hoặc PNG bạn sử dụng hàm thích hợp để xử lý chúng. Bạn kiểm tra để thấy nếu file la JPG } else { if ($type = = 1) { $image_old = imagecreatefromgif($ImageName); imagecreatefromgif() là hàm hợp lý, bởi vì hình gốc có đuôi GIF. Nếu hình là PNG thì bạn sử dụng hàm imagecreatefrompng : } elseif ($type = = 3) { $image_old = imagecreatefrompng($ImageName); } Bây giờ bạn có hình gốc GD thân thiện, bạn cần đến bước 2 để tạo hình ảnh đích tạm. Bạn làm điều này trong dòng tiếp theo $image_jpg = imagecreatetruecolor($width, $height);
  8. Bạn sử dụng hàm imagecreatetruecolor() để tạo màu cho hình. Bạn muốn kích thước của hình thay đổi bạn sử dụng biến $width và $height được chứa trong hàm getimagesize. Bây giờ bạn chuyển sang bước 3 trong dòng tiếp theo: imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height); Bạn sử dụng hàm imagecopyresampled để quyết định thuộc tính cho hình. Ở đây hình gốc và hình đích đều bắt đầu với tọa độ x,y với chiều dài và chiều rông của mỗi hình. Nếu bạn chỉ muốn sao chep vị trí của hình gốc vào hình đích bạn co thể dùng tọa độ và các biến $width/$height. Tiếp theo, bạn lưu hình ảnh bằng dòng sau: imagejpeg($image_jpg, $newfilename); Đây là nơi thật sự chuyển đổi, trước dòng này hình tạm có đặc điểm chung. Bạn quyết định làm file đích JPG với hàm imagejpeg. Bạn cũng có thể sử dụng imagepng hoặc imagegif, nhưng một lần nữa, bạn muốn làm việc với JPG vì phần lớn những file bạn load lên sẽ được sao chép. Trong hàm này bạn đặt ten file nguồn tạm và file đích lâu dài. Quan trọng bạn cần có phần tên dùng biến $newfilename, bạn cũng có thể xóa những hình tạm như dưới đây imagedestroy($image_old); imagedestroy($image_jpg); Trong bảng tóm tắt, bạn đổi tên file JPG thành image_id.jpg, Hoặc tạo một bản sao và lưu với và lưu file JPG với tên image_id.jpg. Tập lệnh cũng xây dựng lại một file mới showimage.php mà chủ yếu là điền thông tin mà bạn đã nhập vào cở sở dữ liệu. Điều khác biệt là bạn có thể cập nhật mọi lúc mọi nơi, và cho phép người dùng có thể sửa đổi.
Đồng bộ tài khoản