Похоже, вы хотите, чтобы пиксели миниатюры были как можно ближе к средней области, как и все остальные миниатюры, верно?
Итак, в основном, учитывая ч / б исходного изображения и целевую область A:
h * w = original image's pixel size (let's got with 640x480 = 307,200 pixels)
A = maximum number of pixels allowed (let's go for 100x100 = 10,000 pixels)
307,200 / 10,000 = 30x reduction
original aspect ratio = 640 / 480 = 1.3333 : 1
Чтобы рассчитать размер нового эскиза x / y:
newX * newY = 10000
newX = newY * 1.333
(newY * 1.333) * newY = 10000
newY^2 * 1.333 = 10000
newY^2 = 10000 / 1.333
newY^2 = 7502
newY = 86.6 -> 87
newX = 87 * 1.333 = 115.97 -> 116
116 x 87 = 10,092 pixels
если бы мы округлили размеры эскизов, мы получили бы 86x114 = 9,804 пикселей
так что ... чтобы преобразовать изображение 640x480 в стандартный размер пикселя 10 000 пикселей, вам потребуется новый размер изображения 86-87 по высоте и 114-116 по ширине.