Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 13,065 Miembros
- 9,531 Temas
- 3,449 Seguidores
[Ayuda] Cortar Imagenes
Tengo un problema.
Nesecito cortar una porcion vertical de cualquier imagen, y la mimas tiene que ser siempre de una determinada altura/anchura.
es decir:
yo reziseo la iamgen en base a la altura que nesecito: 200px; y luego nesecito que la imagen resultante, supongamos una que tiene 300 de ancho y 200 de alto, recortar una imagen de 100x200 con la muestra centra de la imagen.
Se que la complico la cosa en imagenes seria asi:
Nesecito sacar siempre la franja del medio, de una medida determinada:
Podria solucionarlo facilmente con un crop que tengo programado. Pero el trabajo es para un estidio de diseño que me subcontrato y no quiero que se queden con el codigo del mismo.
alguien me puede ayudar? Trate de hacer millones de reglas de 3 y pasajes de variables con diviciones y no anda.
- 0Calificación
- 1Seguidores
- 99Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
6 respuestas
Eventualmente lo tendrás que regalar (?)
Entonces tu problema, si entiendo bien, es saber cúal es el ancho de lo que querés recortar?
Podrías explicar mejor eso? Lo que entendí es que le restás 200px a la altura? o cualquiera
Nesecito que la imagen sea de 100x200.
pongamos que tengo un jpg de 3000x2000 y lo reziceo para que me quede la altura de 200.
Entonces nesecito la franja central del jpg de 300x200 resultante.
pero la cosa es que nesecito obtener siempre una imagen de 100x200 , sea cual sea la resolucion del jpg origianl (hablando siempre de que se cumpla como minimo las dimenciones nesesarias)
si tenes un minimo que no supera los 100 px es simple, por ejemplo teniendo en cuenta el ancho minimo y que no va a ser mayor al crop que necesitas tendrias que obtener las posiciones de x y y de la imagen a escalar restandole el tamaño y diviendolo en 2
si tenes 640 de ancho la posicion x seria 640 - 100 / 2 = 270
<?php
$iAnchoMinimo = 600; // 600 pixeles minimo
$iAnchoCrop = 100; // 100 pixeles de ancho del crop
$iLargoCrop = 200; // 200 pixeles de alto del crop
$imagenFicticia = 'img/imagenFicticia.jpg'; // 650x490
$sNombreCrop = 'img/imagenFicticia-Crop.jpg';
list($width, $height, $imgType, $attr) = getimagesize($imagenFicticia);
$posicionXcrop = ($width - $iAnchoCrop) / 2 ; // 650 - 100 / 2 = 275[ + 100 + 275 = 650]
$posicionYcrop = ($height - $iLargoCrop) / 2; // 490 - 200 / 2 = 145[ + 200 + 145 = 490]
$rImagen = imagecreatefromjpeg($imagenFicticia);
$rThumb = imagecreatetruecolor($iAnchoCrop,$iLargoCrop);
imagecopyresampled($rThumb,$rImagen,0,0,$posicionXcrop,$posicionYcrop,$iAnchoCrop,$iLargoCrop,$width,$height);
ImageJpeg($rThumb,$sNombreCrop);
?>
habia echo algo parecido de una forma mas engorrosa, pero el resultado es el mismo.
No me desplazsa bien la imagen para recortar mia:
Les paso mi codigo que no funciona, con las modificaciones que el user samu me recomendo
<?php
function escalar($imagen,$iLargoCrop,$iAnchoCrop,$destino) {
$iAnchoMinimo = 600; // 600 pixeles minimo
// $iAnchoCrop = 100; // 100 pixeles de ancho del crop
// $iLargoCrop = 200; // 200 pixeles de alto del crop
$imagenFicticia = $imagen; // 650x490
$camino_nombre=explode("/",$imagen);
$nombre=end($camino_nombre);
$sNombreCrop = $destino.$nombre;
list($width, $height, $imgType, $attr) = getimagesize($imagenFicticia);
$posicionXcrop = ($width - $iAnchoCrop) / 2 ; // 650 - 100 / 2 = 275[ + 100 + 275 = 650]
$posicionYcrop = ($height - $iLargoCrop) / 2; // 490 - 200 / 2 = 145[ + 200 + 145 = 490]
echo $posicionXcrop."<br>".$posicionYcrop;
$rImagen = imagecreatefromjpeg($imagenFicticia);
$rThumb = imagecreatetruecolor($iAnchoCrop,$iLargoCrop);
imagecopyresampled($rThumb,$rImagen,0,0,$iAnchoCrop,$posicionXcrop,$posicionYcrop,$iLargoCrop,$width,$height);
ImageJpeg($rThumb,$sNombreCrop);
}
?>