Python自动缩放算法?

2024-04-20 13:13:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在制作一个简单的图像查看器时遇到了问题。你看我想让用户选择的图片是放大还是缩小取决于图片的宽度和高度。因此,1920x1080的照片将缩小到可管理的大小,但40 x 40的图片将看起来足够大,可以看清楚。

我希望这个比例因子只在一个变量中,不使用IF语句,因为做IF pic\u h>;100:等等。。。你明白了。

我在这里:

for x in range(int(pic_w)):
    xline = target.readline()
    for y in range(int(pic_h)):
        pixel_data = xline[y:y+1]

        sf = <THIS IS THE BIT I NEED>
        y1b = (y*2)+0
        x1b = (x*2)+0
        y2b = (y*2)+2
        x2b = (x*2)+2

        y1w = (y*2)+0
        x1w = (x*2)+0
        y2w = (y*2)+2
        x2w = (x*2)+2

        if pixel_data == "1":
            pixel = canvas.create_rectangle(y1b, x1b, y2b, x2b, fill="black")
        elif pixel_data == "0":
            pixel = canvas.create_rectangle(y1b, x1b, y2b, x2b, fill="white")
        else:
            blah blah blah ............

pic_h和pic_w是图片的高度和宽度。


Tags: infordataif宽度高度图片range
1条回答
网友
1楼 · 发布于 2024-04-20 13:13:44
width, height = maximum size in pixels
x, y = number of pixels

maxSize = min(width, height)
width = = (maxSize//x)*x
height = (maxSize//y)*y

xScale = (width/x)
yScale = (height/y)

for row in xrange(y):
  for column in xrange(x):
    canvas.create_rectangle((column * xScale, row * yScale, (column * xScale)+xScale, (row * yScale)+yScale), fill=data)

相关问题 更多 >