Tôi muốn cắt ảnh từ trung tâm có kích thước 200 * 130 ảnh sẽ bị cắt có thể khác nhau về kích thước, nếu ảnh nhỏ hơn, chúng tôi sẽ không cắt nó, tôi biết phần này ở đâu có thể kiểm tra chiều cao và với hình ảnh nhưng loại tấn công vào việc cắt xén từ giữa hình ảnh Vì tôi không thể tìm ra cách giữ trung tâm như điểm cắt và hơn cắt ra ngoài nóCắt ảnh từ Trung tâm PHP
Trả lời
GD đi kèm với tất cả các cài đặt PHP từ phiên bản 4.3.6 trở đi, rất có thể, bạn có nó.
Dưới đây là các bước bạn cần phải thực hiện ...
- Tạo một tài nguyên hình ảnh bằng một trong những chức năng GD
imagecreatefrom*()
. Các bạn sử dụng phụ thuộc vào loại hình ảnh bạn đang làm việc với - Xác định kích thước hình ảnh sử dụng
imagesx()
vàimagesy()
- Xác định cây trồng của bạn phối bằng cách sử dụng thuật toán và cây trồng sau đây sử dụng
imagecopy()
Tìm tọa độ cây trồng
$width = imagesx($img);
$height = imagesy($img);
$centreX = round($width/2);
$centreY = round($height/2);
$cropWidth = 200;
$cropHeight = 130;
$cropWidthHalf = round($cropWidth/2); // could hard-code this but I'm keeping it flexible
$cropHeightHalf = round($cropHeight/2);
$x1 = max(0, $centreX - $cropWidthHalf);
$y1 = max(0, $centreY - $cropHeightHalf);
$x2 = min($width, $centreX + $cropWidthHalf);
$y2 = min($height, $centreY + $cropHeightHalf);
hãy sử dụng lớp xử lý ảnh của tôi, nó nên làm cho một số khía cạnh dễ dàng hơn nhiều - https://gist.github.com/880506
$im = new ImageManipulator('/path/to/image');
$centreX = round($im->getWidth()/2);
$centreY = round($im->getHeight()/2);
$x1 = $centreX - 100;
$y1 = $centreY - 65;
$x2 = $centreX + 100;
$y2 = $centreY + 65;
$im->crop($x1, $y1, $x2, $y2); // takes care of out of boundary conditions automatically
$im->save('/path/to/cropped/image');
Điều này có thể giúp bạn .
function cropCentered($img, $w, $h)
{
$cx = $img->getWidth()/2;
$cy = $img->getHeight()/2;
$x = $cx - $w/2;
$y = $cy - $h/2;
if ($x < 0) $x = 0;
if ($y < 0) $y = 0;
return $img->crop($x, $y, $w, $h);
}
Tôi giả sử bạn đang sử dụng thư viện GD. $ img là hình ảnh GD, $ w và $ h là chiều rộng và chiều cao, tương ứng, bạn muốn hình ảnh mới của mình có. Trong trường hợp của bạn, $ w = 200, $ h = 130.
Jeez, tại sao bạn làm điều đó một cách khó khăn? Chỉ đơn giản là thiết lập các vị trí x và y như số tiền để cắt thông báo/2
$imageSize = getimagesize('thumbnail.png');
$croppedImage = imagecrop(imagecreatefrompng('thumbnail.png'), ['x' => 0, 'y' => ($imageSize[1]-$imageSize[0]*(9/16))/2, 'width' => $imageSize[0], 'height' => $imageSize[0]*(9/16)]);
làm thế nào tôi sử dụng tôi $ ImageSize [0] * (9/16), là số tiền tôi đang cắt xén bởi trong y hướng, và tôi trừ rằng từ chiều cao hình ảnh ban đầu để tìm số lượng cây trồng, sau đó chia cho 2. Nếu bạn muốn làm tương tự cho chiều rộng, chỉ cần làm theo các bước tương tự.
- 1. Cắt ảnh ở trung tâm bằng cách sử dụng PIL
- 2. Hiển thị hàng TRUNG TÂM hình ảnh
- 3. Canvas xoay từ góc ảnh trung tâm dưới cùng?
- 4. Làm thế nào để cắt trung tâm bitmap như imageview?
- 5. Cắt ảnh trong PHP
- 6. Bù đắp div từ trung tâm
- 7. Cách tải DLL từ kho trung tâm
- 8. jQuery ~ Cách kích hoạt hộp chiều rộng và chiều cao từ trung tâm trung tâm
- 9. cắt dán hình ảnh trong PHP
- 10. trung tâm hình ảnh theo chiều ngang bên overflow: hidden div
- 11. Xoay trục hình ảnh trong Trung tâm - Android
- 12. wpf xoay hình ảnh xung quanh trung tâm
- 13. Hình ảnh trung tâm lớn hơn màn hình
- 14. hình ảnh trung tâm bên trong tràn-ẩn-cha mẹ
- 15. Android: WebView tải hình ảnh/nội dung ở trung tâm
- 16. Trung tâm & Xoay hình ảnh với IE8 (jQueryRotate)
- 17. Trung tâm PubSubHubBub
- 18. Trung tâm Bootstrap nhóm
- 19. Trung tâm Nút CSS
- 20. Trung tâm latex lstlisting
- 21. crop trung tâm với trọng lực sử dụng Imagick và PHP
- 22. Làm thế nào để thêm hai hình ảnh nền - trái và phải từ cột trung tâm
- 23. Trung tâm CSS Responsive DIV
- 24. Tìm trung tâm của cây
- 25. Nguồn gốc trung tâm tại matplotlib
- 26. Cách đặt trung tâm xoay của MKAnnotationView
- 27. Làm cách nào để cắt hình vuông trung tâm trong UIImage?
- 28. Hoạt ảnh trên quy mô hình ảnh trên Android có liên quan đến điểm trung tâm
- 29. nội dung trung tâm nền tảng zurb trong lưới
- 30. AffineTransform: mở rộng Hình dạng từ trung tâm
Mũ tắt, điều đó thật tuyệt vời và hoạt động xuất sắc.THanks – June
Trong thuật toán đầu tiên, các biến nào sẽ tương ứng với các tham số chính xác của imagecopy()? –
@ChrisHarrison Xem https://gist.github.com/philBrown/880506#file-imagemanipulator-php-L185 – Phil