#include #include void usage(char * s) { fprintf(stderr, "Usage:\n"); fprintf(stderr, "\t%s imgx imgy minx miny\n", s); } int main(int ac, char ** av) { float imgratio; float minratio; unsigned int imgx, imgy, minx, miny; if (ac < 5) { usage(av[0]); return 1; } imgx=atoi(av[1]); imgy=atoi(av[2]); minx=atoi(av[3]); miny=atoi(av[4]); printf("Dimensions: %dx%d ---> %dx%d\n", imgx, imgy, minx, miny); if (!(imgx && imgy)) { fprintf(stderr, "Image dimensions must be non-zero!\n"); return 1; } imgratio=(float) imgx/(float) imgy; minratio=(float) minx/(float) miny; printf("Ratios: Image: %.2f, Thumbnail: %.2f\n", imgratio, minratio); if (minratio > imgratio) { minx=miny*imgratio; } else { miny=minx/imgratio; } printf("Target dimensions: %dx%d\n", minx, miny); return 0; }