2012-08-31 15 views
5

Tôi có một nhóm xem trước sản phẩm hình ảnh, nhưng chúng không phải là cùng kích thước.Imagecrop mà không lưu hình ảnh

Vì vậy, tôi tự hỏi, liệu có thể cắt một hình ảnh khi đang di chuyển mà không lưu nó?

Hai liên kết sẽ hiển thị những gì tôi có nghĩa là:

http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=12

http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=13

+2

Có, nhưng bạn có thể * muốn * để lưu nó, vì các thao tác thay đổi kích thước hình ảnh rất tốn kém và bạn không * muốn * phải thực hiện chúng lặp đi lặp lại mỗi lần. – deceze

Trả lời

5

Có nó có thể đây là cách tôi làm điều đó:

//Your Image 
$imgSrc = "image.jpg"; 
list($width, $height) = getimagesize($imgSrc); 
$myImage = imagecreatefromjpeg($imgSrc); 

// calculating the part of the image thumbnail 
if ($width > $height) 
{ 
    $y = 0; 
    $x = ($width - $height)/2; 
    $smallestSide = $height; 
} 
else 
{ 
    $x = 0; 
    $y = ($height - $width)/2; 
    $smallestSide = $width; 
} 

// copying the part into thumbnail 
$thumbSize = 100; 
$thumb = imagecreatetruecolor($thumbSize, $thumbSize); 
imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide); 

//final output 
header('Content-type: image/jpeg'); 
imagejpeg($thumb); 

Đây không phải là một hoạt động sáng verry, giống như những người khác tôi cũng khuyên bạn nên bạn lưu hình thu nhỏ sau khi tạo nó vào hệ thống tập tin của bạn.

Bạn có thể muốn xem PHP's GD library.

1

Nó chắc chắn là có thể, nhưng những gì bạn đang muốn làm lẽ không phải là một ý tưởng tốt - đây là lý do tại sao.

Nếu bạn cắt một hình ảnh, lưu nó, bạn (hay đúng hơn là máy chủ của bạn) không bao giờ cần phải làm điều đó một lần nữa. Nó không phải là một hoạt động nhẹ.

Tuy nhiên, nếu bạn tiếp tục cắt xén, máy chủ của bạn sẽ phải thực hiện công việc đó mỗi lần duy nhất - điều này hoàn toàn không hiệu quả.

Là trường hợp xấu nhất, tại sao không tự động cắt chúng một lần thành thứ nguyên bạn muốn (thay vì thực hiện thủ công) và chỉ cần lưu các kết quả đó?

Cuối cùng, cho rằng đó là một cửa hàng, sẽ không tự cắt chúng cung cấp cho sản phẩm của bạn những hình ảnh tốt nhất có thể - và do đó cơ hội tốt nhất để bán chúng?

2

Bạn có thể muốn thử kịch bản đơn giản này: https://github.com/wes/phpimageresize

Nó cũng cho phép bộ nhớ đệm, mà nên giúp đỡ với vấn đề hiệu suất.

Nhưng tôi cũng thích thay đổi kích thước hình ảnh và lưu chúng dưới dạng hình thu nhỏ.

Các vấn đề liên quan