计算图像保持比例的新宽度和高度恒定,并应具有所需的像素数



我必须以这样的方式调整图像的大小:-

1.)比例应该是恒定的(但小的变化是可以接受的)

2.)生成的图像应具有给定范围内的总像素数

我的伪算法如下:-(总像素应该在28000 &amp之间;算法中演示的30000)

ratio=width/height
for i in range(width):
for j in range(height):
if (i!=0)|(j!=0):
no_of_pixels=i*j
if (no_of_pixels>=28000)*(no_of_pixels<=30000):
new_ratio=i/j
if abs(new_ratio-ratio)<=0.006:
new_width=i
new_height=j

我的伪算法工作正常,但问题是,它显然是无效的。有没有更好的办法加快速度?

找到现有面积并计算应该缩小(或扩大)多少:

import math
area = width * height
factor = math.sqrt(30000.0 / float(area))
new_width = int(width * factor)
new_height = int(height * factor)

最新更新