Pues ni idea porque yo no la he usado nunca. Ahora bien, yo leo:
Cita: En otras palabras, imagecopyresized() tomará un área rectangular de src_image de ancho src_w y alto src_h en la posición (src_x,src_y) y la coloca en un área rectangular de dst_image de ancho dst_w y alto dst_h en la posición (dst_x,dst_y).
Supongo que tienes que jugar con el valor de src_x y src_y. Hacer algún cálculo para que recorte en la posición correcta. Se me ocurre lo siguiente.
Tomemos por ejemplo quieres 100x100, y partes de 300x200. tu función, podría hacer:
- mides el tamaño del original.
- Buscas el lado más largo. Si són iguales, no hay problema, redimensionas y punto.
- Haces: {[100 (lo deseado) / lado más corto(200) * lado más largo (300)] - 100 (deseado)} / 2 = 25
- Entonces:
src_w = src_h = 200px (el lado más corto)
scr_x (el lado largo)= 25
scr_y (el lado corto)= 0
dst_w = dst_h = 100
Algo así, no debería funcionar? Esta reflexión la he hecho así a lo pronto, puede contener errores o simplemente no funcionar...
Saludos