2012-06-18 66 views
5

Có một tệp được lưu trữ trong máy chủ, ví dụ có kích thước 400 X 600 pixel. Nhưng ở một phần khác của trang web, chúng tôi cần hình ảnh giống nhau về kích thước khác nhau. Đối với hình thu nhỏ, chúng tôi thường cần 50 X 50 pixel và nếu chúng tôi chọn tải xuống cùng một hình ảnh với kích thước ban đầu, sẽ mất nhiều thời gian hơn và tải trang sẽ chậm lại. Nếu hình ảnh đó được thay đổi kích thước, kích thước của nó sẽ giảm nhiều hơn (như, 500 KB đến 50 KB). Vì vậy, những gì tôi muốn là, trước khi trình duyệt tải hình ảnh, máy chủ nên thay đổi kích thước hình ảnh để kích thước theo yêu cầu trong PHP script.PHP - Thay đổi kích thước hình ảnh trong máy chủ trước khi trình duyệt tải xuống

+4

Cách tốt nhất để làm điều đó là để tạo ra hình thu nhỏ của 50 * 50 khi tải ảnh gốc tại máy chủ . để theo yêu cầu bạn có thể kéo hình ảnh liên quan. – neeraj

+0

chúng tôi có thể có hàng nghìn người dùng. lưu trữ các phiên bản khác nhau của mỗi hình ảnh sẽ chiếm nhiều không gian lưu trữ ... –

+3

làm cho nó hoạt động và không lưu trữ nghĩa là bạn sẽ thực hiện hàng nghìn lần và tại một thời điểm nào đó bạn sẽ quyết định lưu trữ nó. –

Trả lời

1

Bạn cần đặt mã trong thumbnail code trong tệp mới cho phép nói image.php rồi sử dụng tập lệnh này làm src của thẻ img với thông số tên tệp, chiều rộng và chiều cao.

<img src="http://path-to-directory/image.php?img=abc.jpg&width=50&height=50" /> 

Bạn cần thay đổi "DSC01088.jpg" để echo $ _GET ['img']; sau khi xác nhận hợp lệ.

1

Bạn sẽ cần thư viện GD của PHP, sau đó xem thisthis và sau đó liên kết tệp php thay đổi kích thước thay vì chính hình ảnh đó.

Cũng lưu ý đề xuất của neeraj, vì vậy bạn có thể thay đổi kích thước trong khi tải lên để có hiệu suất tốt hơn.

Trong trường hợp máy chủ của bạn thiếu GD GD - rất khó xảy ra - bạn nên xem this hoặc this.

0

Vâng, tất nhiên!

Google cho mã PHP chỉnh sửa ảnh samples

Sau đó tạo một kịch bản tải về và gọi nó với các thông số như sau:

http:///www.mysite.com/image.php?image=path/to/my/image.png&width=50&height=50&crop=1 

Các kịch bản sẽ được tải hình ảnh, thay đổi kích thước chiều rộng cung cấp và chiều cao và tùy chọn cắt nó, sau đó echo với tiêu đề thích hợp để tải xuống ...

Có rất nhiều cách để làm điều này ... Đôi khi nó chỉ là tốt hơn để sử dụng google trước khi yêu cầu ở đây tại SE ...

+0

Nó không phải là tôi không google. Tôi chỉ muốn đạt được câu trả lời cụ thể trong thời gian ngắn hơn, như tôi đã đạt đến câu trả lời của bạn. Dù sao cũng cảm ơn bạn.. –

0

Sử dụng GD Library để tạo hình thu nhỏ

đầu tiên có được danh sách của tất cả các hình ảnh trong thư mục

function thumb() 
{ 
    $img_dir_path='images/'; 
    $thumb_dir_path='images/thumbs/'; 

    $img_array=GLOB($img_dit_path.'*.{jpg,jpeg}',GLOB_BRACE); 

    foreach($img_array as $img) 
    { 
     list($path,$file)=explode('/', $img); 
     list($fileName, $extension)=explode('.',$file); 

     $thumb-file=$thumb_di_path . $fileName. '-thumb.jpg'; 

     if(file_exists($thumb-file)) 
     { 
       //do nothing 
     } 
     else 
     { 
      //create file using GD and set width and height proportionally 
      // Example $width=$orig_width * 0.1; $height =$orig_height * 0.1 
     } 
    } 
} 
Các vấn đề liên quan