Мой метод не меняет ширину и высоту изображений, он просто меняет размер - PullRequest
1 голос
/ 18 мая 2019

Мой метод не меняет ширину и высоту изображения, он просто изменяет его размер.

Я использовал библиотеку 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

изображение было в 1 МБ, теперь это просто 130 КБ, это нормально?Я ожидал получить разную ширину и высоту.

1 Ответ

1 голос
/ 18 мая 2019

Да, это выглядит нормально.То, что вы делаете, это то, что вы на самом деле передискретизируете изображение.

Если ваше входное изображение имеет горизонтальный размер пикселя, превышающий 320 пикселей, вы эффективно уменьшаете определение (количество пикселей) и, следовательно, размер файла ниже.,Если вы не хотите изменять определение, а хотите изменить только размер печати / дисплея, например, вы можете рассмотреть масштабирование dpi.

Это можно сделать при сохранении, выполнив что-то вроде этого:

img.save(filepath, format=fmt, dpi=(dpi, dpi))

Вы должны рассчитать значение dpi по горизонтали и вертикали по желанию.Это не изменит размер файла.

...