El problema es que cada caso es muy concreto y no hay un método que se adapte perfectamente a tús necesidades.
Sobre la función que te pasé anteriormente te la explico un poco, luego tú investiga como adaptarla a tús necesidades.
Lo primero es que se trata de una funcion a la cual le pasamos los siguientes parámetros:
$imgsrc ='la ruta de la imagen';
$imgnew='la ruta de la nueva imagen';
$newx=150; //de ancho por ejemplo
$newy=125; //de alto por ejemplo
$quality=75; // de calidad por ejemplo
Luego la funcion crea una lista con las propiedades de la imagen ancho, alto, tipo.
Luego evalua el tipo de imagen y efectua una determinada acción dependiendo del caso.
Tambien realiza una serie de acciones dependiendo si el ancho es mayor o menor que el alto.
Por último usa las funciones
imagecopyresampled y
imagejpeg
ejemplo redimensionar imagen con la funcion que te pasé anteriormente:
Código PHP:
<?php fun_resizejpg("directorio_imagenes/imagen_redimensionar.jpg","directorio_imagenes/nueva_imagen_redimensionada.jpg", 100, 100 , 100); ?>
evidentemente para que la llamada a la función resulte, la función debe ser accesible. Ponla en el mismo archivo o haz un include al archivo donde se encuentra la función.
El tema de las flechas de los thumbnails lo puedes hacer con css cuando muestres las imagenes.
Saludos,