Este margen negro... como de cuantos pixeles es?
Supongo que el error está aquí:
Código PHP:
Ver originalif(!$nheight){
$nwidth = $nwidth;
$nheight = round($height % $nwidth); }
Si deseas obtener el factor de conversión, creo que en esa función round sólo deberías involucrar anchos ($widht y $nwidth), después multiplicas (o divides?) el resultado por la altura original.
Sugerencia:
Usa una hoja de cálculo para probar esa fórmula y ajustarla (modificarla) hasta que obtengas el resultado deseado.