Python 我的方法没有';t调整图像的宽度和高度,只需调整大小即可

Python 我的方法没有';t调整图像的宽度和高度,只需调整大小即可,python,image,python-imaging-library,image-resizing,Python,Image,Python Imaging Library,Image Resizing,我的方法不调整图像的宽度和高度,只调整图像的大小 我使用了一个python库,它是PIL import PIL from PIL import Image def resizeImg(img): mywidth = 320 wpercent = (mywidth/float(img.size[0])) hsize = int((float(img.size[1])*float(wpercent))) img = img.resize((mywidth,hsize), PIL.Im

我的方法不调整图像的宽度和高度,只调整图像的大小

我使用了一个python库,它是PIL

import PIL
from PIL import Image
def resizeImg(img):
  mywidth = 320
  wpercent = (mywidth/float(img.size[0]))
  hsize = int((float(img.size[1])*float(wpercent)))
  img = img.resize((mywidth,hsize), PIL.Image.ANTIALIAS)
  return img
图像是1MB,现在只有130KB,这正常吗?我希望得到不同的宽度和高度。

是的,这看起来很正常。 你所做的是,你实际上是在对图像重新采样

如果输入图像的水平像素大小高于320像素,则会有效地降低定义(像素数),从而降低文件大小。 如果您不想更改定义,但只想改变打印/显示大小,您可以考虑缩放DPI。

在保存时,可以执行以下操作:

img.save(filepath, format=fmt, dpi=(dpi, dpi))
您必须根据需要计算水平和垂直dpi值。
这不会更改文件大小。

为什么要删除
import
语句,这些语句必须在代码中,这样其他人就不能运行它了?请提供您的起始图像,以便我们可以看到您正在使用什么?当您更改宽度和高度时,您期望得到什么结果?您似乎对文件变小感到惊讶?我相信您的意思是,您试图通过一个
bbox
(特定尺寸)来裁剪图像,但它的大小发生了更改(所谓大小,我指的是用于表示图像的像素数(x,y))。