Quiero recortar una imagen desde el centro en el tamaño 200 * 130 La imagen que se va a recortar puede variar en tamaño, si la imagen es más pequeña no la recortaré Sé cómo esta parte donde puede comprobar la altura y con la imagen, pero tipo de golpeado en la forma de recortar desde el centro de la imagen Como no puedo averiguar cómo mantener el centro como punto de recorte y que fuera recortarloRecortar imagen del centro PHP
Respuesta
GD viene incluido con todas las instalaciones de PHP desde la versión 4.3.6 en adelante, así que lo más probable es que usted lo tenga.
He aquí los pasos que debe tomar ...
- Crear un recurso de imagen usando una de las funciones GD
imagecreatefrom*()
. El que se utiliza depende del tipo de imagen que está tratando con - determinar las dimensiones de imagen mediante
imagesx()
yimagesy()
- Determine su cosecha de coordenadas utilizando el siguiente algoritmo y de los cultivos usando
imagecopy()
Encuentra las coordenadas de los cultivos
$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);
Siéntase libre de utilizar mi clase de manipulación de imágenes, se debe hacer algunos aspectos mucho más fácil - 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');
Esto podría ayudarle .
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);
}
Supongo que está utilizando la biblioteca de GD. $ img es una imagen GD, $ w y $ h son el ancho y el alto, respectivamente, que desea que tenga su nueva imagen. En su caso, $ w = 200, $ h = 130.
Por Dios, ¿por qué lo haces de la manera difícil? Simplemente basta con establecer las posiciones X e Y como la cantidad de recortar/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)]);
aviso cómo utilicé mi $ imageSize [0] * (9/16), que es la cantidad que estoy de recorte haciendo en la ordenada dirección, y restamos eso de la altura de la imagen original para encontrar la cantidad de cultivo, luego dividimos entre 2. Si quieres hacer lo mismo para el ancho, simplemente sigue los mismos pasos.
- 1. Recortar imagen en PHP
- 2. imagen Matplotlib savefig recortar
- 3. Recortar imagen usando CGImageCreateWithImageInRect
- 4. Recortar imagen en Android
- 5. Cómo recortar una imagen usando jquery ajax y php?
- 6. Redimensionar la imagen con Recortar
- 7. Recortar imagen capturada por AVCaptureSession
- 8. Recortar con PHP
- 9. Cómo recortar una imagen enorme
- 10. Recortar imagen ala Google Goggles
- 11. Recortar múltiples caracteres usando php
- 12. imagen del centro dentro de overflow-hidden-parent
- 13. cómo alinear mi imagen en el centro del IOS horizontal
- 14. ¿Cómo puedo recortar una imagen en Qt?
- 15. cómo recortar la imagen en pedazos programáticamente
- 16. Cómo recortar la imagen analizada en android?
- 17. Recortar la imagen usando PIL en python
- 18. Cómo recortar una imagen en android?
- 19. Usar javascript para recortar la imagen
- 20. Cómo recortar una imagen en iOS
- 21. ¿Cómo puedo recortar una imagen con Pygame?
- 22. css imagen de fondo redimensionar ancho recortar altura
- 23. ¿Cómo centro una imagen girada usando GDI +?
- 24. centro imagen en div con desbordamiento oculto
- 25. Offset div del centro
- 26. PHP necesita recortar todas las variables $ _POST
- 27. ¿Cómo puedo encontrar el centro del objeto?
- 28. ¿Cómo recortar y rotar la imagen mediante programación en Android?
- 29. Cargar y recortar la imagen antes de enviarla al servidor
- 30. Recortar una imagen usando varios parches en matplotlib
Felicitaciones, eso es increíble y funciona de manera excelente.THanks – June
En el primer algoritmo, ¿qué variables corresponderían a los parámetros correctos de imagecopy()? –
@ChrisHarrison Consulte https://gist.github.com/philBrown/880506#file-imagemanipulator-php-L185 – Phil